中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 源碼時代軟件測試干貨分享|Python自動化測試常見面試題,學會不怕找不到好工作!

源碼時代軟件測試干貨分享|Python自動化測試常見面試題,學會不怕找不到好工作!

發布時間:2020-04-02 00:32:28 來源:網絡 閱讀:370 作者:wx5d51393e4bd0e 欄目:開發技術

怎么理解裝飾器,用過或者寫過什么裝飾器嗎?

1.1.概述:
裝飾器本質上是一個 Python 函數,它可以讓其他函數在不需要做任何代碼變動的前提下增加額外功能,裝飾器的返回值也是一個函數對象。

1.2.詳細描述:

1.import?logging??2.#?定義裝飾器,接收舊函數??
3.def?decorator(oldfunc):??
4.?????定義新函數,加強原函數??
5.????def?new_func(*args,?**kwargs):??
6.????????加強代碼寫這里,記錄日志信息....??
7.????????logging.error("記錄日志信息")??
8.????????ret?=?oldfunc(*args,?**kwargs)??
9.????????return?ret??
10.??
11.?????返回新函數??
12.????return?new_func??
13.??
14.??
15.#?通過語法糖使用裝飾器??
16.@decorator??
br/>2.#?定義裝飾器,接收舊函數??
3.def?decorator(oldfunc):??
4.?????定義新函數,加強原函數??
5.????def?new_func(*args,?**kwargs):??
6.????????加強代碼寫這里,記錄日志信息....??
7.????????logging.error("記錄日志信息")??
8.????????ret?=?oldfunc(*args,?**kwargs)??
9.????????return?ret??
10.??
11.?????返回新函數??
12.????return?new_func??
13.??
14.??
15.#?通過語法糖使用裝飾器??
16.@decorator??
18.?????獲取?兩個數的平方??
19.????return?x**2??
20.??
21.#?執行??
22.print(square(5))??

1.3.應用場景:
日志記錄,統計代碼執行時間,權限驗證
2.迭代器和生成器的區別
2.1.概述:
生成器是特殊的迭代器,它更加優雅.生成器中的元素不是直接生成好,而是每使用next()方法獲取下一個元素的時候才創建,從而大大節省內存空間。迭代器和生成器的區別
2.2.詳細描述:
1.迭代器是一個更加抽象的概念,任何對象,如果它的類有next方法和iter方法返回自身。對于string、list、dict、tuple等這類容器對象,使用for循環遍歷是很方便的。在后臺for語句對容器對象調用iter()函數,iter()是Python的內置函數。iter()會返回一個定義了next()方法的迭代器對象,它在容器中逐個訪問容器內元素,next()也是python的內置函數。在沒有后續元素時,next()會拋出一個StopIterration的異常。
2.生成器(Generator)是創建迭代器的簡單而強大的工具。它有列表生成器和函數生成器.函數生成器寫起來就像是正規的函數,只是在返回數據的時候需要使用yield語句返回。每次next()被調用時,生成器會返回它脫離的位置(它記憶語句最后一次執行的位置和所有的數據值)
2.3.應用場景:

1.#?列表生成器,其實就是列表推導式的[]寫成()??
2.g?=?(i?for?i?in?range(10))??
3.print(next(g))??
4.print(next(g))??
5.print(next(g))??
6.print(next(g))??
7.??
8.??
9.#?通過?函數式生成器?獲取?1-10?數字的平方??
10.def?sqrt():??
11.????num?=?1??
12.????while?num?<=?10:??
13.????????返回平方??
14.????????yield?num**2??
15.????????num?+=?1??
16.??
17.????????調用函數返回生成器??
18.????????g?=?sqrt()??
19.????????print(next(g))??
20.????????print(next(g))??
21.????????print(next(g))??
22.????????print(next(g))??

(本文由源碼時代技術老師原創撰寫,轉載請注明出處)

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

竹溪县| 江津市| 子洲县| 资中县| 拜泉县| 双柏县| 新泰市| 新竹市| 同江市| 哈密市| 金川县| SHOW| 建阳市| 科技| 郎溪县| 天门市| 德阳市| 武隆县| 郧西县| 南澳县| 綦江县| 南乐县| 萍乡市| 滕州市| 浦东新区| 桓仁| 霍林郭勒市| 丰县| 凭祥市| 新密市| 遵化市| 阿巴嘎旗| 灵山县| 武安市| 太康县| 巴林右旗| 曲水县| 吉林省| 钟祥市| 芒康县| 体育|