91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》
  • 首頁 > 
  • 教程 > 
  • 開發技術 > 
  • 源碼時代軟件測試干貨分享|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

博野县| 定兴县| 临高县| 监利县| 义马市| 新平| 自治县| 增城市| 屏边| 仪征市| 广河县| 乌海市| 沈丘县| 临洮县| 峨边| 开平市| 应城市| 叙永县| 米林县| 离岛区| 河东区| 沂水县| 景德镇市| 漳平市| 乳山市| 沭阳县| 正定县| 天津市| 清远市| 随州市| 尖扎县| 横峰县| 屏东县| 遂溪县| 甘德县| 云安县| 静海县| 缙云县| 桃园县| 黑河市| 阳新县|