# 用生成器(generators)方便地寫惰性運(yùn)算
def double_numbers(iterable):
for i in iterable:
yield i + i
# 生成器只有在需要時(shí)才計(jì)算下一個(gè)值。它們每一次循環(huán)只生成一個(gè)值,而不是把所有的
# 值全部算好。
#
# range的返回值也是一個(gè)生成器,不然一個(gè)1到900000000的列表會(huì)花很多時(shí)間和內(nèi)存。
#
# 如果你想用一個(gè)Python的關(guān)鍵字當(dāng)作變量名,可以加一個(gè)下劃線來(lái)區(qū)分。
range_ = range(1, 900000000)
# 當(dāng)找到一個(gè) >=30 的結(jié)果就會(huì)停
# 這意味著 `double_numbers` 不會(huì)生成大于30的數(shù)。
for i in double_numbers(range_):
print(i)
if i >= 30:
break
# 裝飾器(decorators)
# 這個(gè)例子中,beg裝飾say
# beg會(huì)先調(diào)用say。如果返回的say_please為真,beg會(huì)改變返回的字符串。
from functools import wraps
def beg(target_function):
@wraps(target_function)
def wrapper(*args, **kwargs):
msg, say_please = target_function(*args, **kwargs)
if say_please:
return "{} {}".format(msg, "Please! I am poor :(")
return msg
return wrapper
@beg
def say(say_please=False):
msg = "Can you buy me a beer?"
return msg, say_please
print(say()) # Can you buy me a beer?
print(say(say_please=True)) # Can you buy me a beer? Please! I am poor :(
python自動(dòng)化測(cè)試--高級(jí)用法
最后編輯于 :
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
相關(guān)閱讀更多精彩內(nèi)容
- 一、跨行復(fù)制粘貼 一、excel篩選后的數(shù)據(jù)復(fù)制,粘貼后會(huì)在一個(gè)連續(xù)的行范圍內(nèi)。如果要跨行復(fù)制粘貼,難度就大了。 ...
- 本文主要解決四個(gè)問題: 第一問:awk的定義與來(lái)源是什么? 第二問:awk 的作用是什么? 第三:akw的命令格式...
- Ring Buffer的常規(guī)用法與高級(jí)用法(一) 在涉及到模塊與模塊間數(shù)據(jù)傳輸緩存處理、通信程序中,經(jīng)常使用環(huán)形緩...
- Java 5 中引入了新的鎖機(jī)制——java.util.concurrent.locks 中的顯式的互斥鎖:Loc...
- 索引 主要目的:提高查詢效率,對(duì)需要經(jīng)常查詢的字段添加索引,可有效提高查詢效率。 簡(jiǎn)介 索引是一種特殊的文件(In...