大家好,我是 bug晒他,一個(gè)普通程序員吱型。
程序員的快速成長(zhǎng),在于多練習(xí)陨仅,多輸出津滞,多分享,多鏈接灼伤。
怎奈執(zhí)行力太差触徐,錯(cuò)過(guò)了很多好的機(jī)會(huì)。
什么時(shí)候開(kāi)始都不算晚狐赡,歡迎大家關(guān)注撞鹉,見(jiàn)證一個(gè)普通程序員的成長(zhǎng)之路。
這里先立個(gè) Flag颖侄,參加 濤哥聊Python技術(shù)圈 知識(shí)星球的每日作業(yè)打卡鸟雏,先堅(jiān)持 7 天。
問(wèn)題:
Day1
Q15: 寫(xiě)一個(gè)記錄函數(shù)執(zhí)行時(shí)間的裝飾器览祖。
解決:
完成今天的作業(yè)孝鹊,對(duì)我來(lái)說(shuō),有兩個(gè)難題:
其一:Python 的開(kāi)發(fā)環(huán)境展蒂。
其二:身為 Python 初學(xué)者又活,不太理解什么是裝飾器,需要研究下锰悼。
解決第一個(gè)問(wèn)題柳骄,Python 開(kāi)發(fā)環(huán)境。
百度關(guān)鍵詞松捉,windows + python 環(huán)境配置夹界。
就能準(zhǔn)確搜到很多文章,都蠻詳細(xì)的隘世。
找個(gè)生產(chǎn)日期比較新的可柿,照著一步步配置輕松完成。
Python 用的 3.10 的版本丙者,開(kāi)發(fā)工具用的 PyCharm复斥,沒(méi)什么特殊配置,省事械媒。
第二個(gè)問(wèn)題目锭,Python 裝飾器评汰。
同樣先百度,有條件可以 Google痢虹。
搜到相關(guān)文章后被去,進(jìn)行閱讀學(xué)習(xí)。
學(xué)習(xí)了 python 函數(shù)的常見(jiàn)用法后奖唯,輕松將 demo 寫(xiě)完惨缆。
裝飾器函數(shù),就是定義一個(gè)裝飾器函數(shù)丰捷,另一個(gè)函數(shù)用這個(gè)裝飾器函數(shù)裝飾坯墨。當(dāng)這個(gè)函數(shù)執(zhí)行時(shí),也會(huì)執(zhí)行對(duì)應(yīng)裝飾器函數(shù)中的功能病往。
通過(guò) @裝飾器函數(shù)名 的調(diào)用方式實(shí)現(xiàn)捣染。
代碼如下:
import time
def func_decorator_execute_and_execution_time_report(func):
def wrap_the_func():
before_func_time = time.time()
func()
after_func_time = time.time()
execution_time = after_func_time - before_func_time
print("func execution time: " + str(execution_time))
return wrap_the_func
@func_decorator_execute_and_execution_time_report
def hello_bug():
# 函數(shù)暫停 2 秒再執(zhí)行
time.sleep(2)
print("hello bug")
hello_bug()
# 運(yùn)行結(jié)果:
# hello bug
# func execution time: 2.004734992980957
總結(jié):
好了,Day1 打卡結(jié)束停巷,學(xué)到了 python 函數(shù)的常見(jiàn)用法耍攘,以及裝飾器函數(shù)的定義和使用。
如果你也正在學(xué)習(xí) Python 畔勤,歡迎和 bug 一起交流少漆。
關(guān)注公眾號(hào) bug 玩編程,一起玩編程硼被!