python自動(dòng)化測(cè)試--高級(jí)用法

# 用生成器(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 :(
最后編輯于
?著作權(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ù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容