課程
/后端開發
/Python
/Python3 進階教程(新版)
課中一直在說@用法,但是我一直沒參透出@的作用和用法,大佬們講講這個@一般什么時候用,用在哪?
2021-04-22
源自:Python3 進階教程(新版) 8-10
正在回答
#定義裝飾器函數log def?log(f):?#f指代你要裝飾的函數,如下文的factorial ????def?fn(x):#這里就開始裝飾了 ????????print('call?'?+?f.__name__?+?'()...')?#裝飾器裝飾的東西 ????????return?f(x)?#執行被裝飾的函數(要裝飾了才知道對應哪個函數) ????return?fn?#裝飾完畢 ? #定義好了裝飾器內容后,用@+裝飾器名稱就可以調用裝飾器了 @log? def?factorial(n): ????return?reduce(lambda?x,y:?x*y,?range(1,?n+1)) print(factorial(10)) #執行順序為,先執行裝飾器,后執行被裝飾的函數,也就是print('call?'?+?f.__name__?+?'()...')?后reduce(lambda?x,y:?x*y,?range(1,?n+1))
這課程越到后面內容越跳越了,突然就出來一個新東西也不細講,根本就不知道在說點什么
時頌望見
@是裝飾符
以原文為例,先定義了一個log()函數。
把想要裝飾函數factorial()上一行寫上 @log,就完成了用log()函數里的內容去“”裝飾“”factorial()函數里的內容。
通過@裝飾符,可以修飾某函數,使其完成自己想要的額外的功能
舉報
學習函數式、模塊和面向對象編程,掌握Python高級程序設計
2 回答這一段,我看不懂,有大神可以幫忙解釋下嗎?
2 回答這兩節課的內容一般用在什么地方?怎么感覺似懂非懂
1 回答我代碼寫在python commandline中,為啥不能運行
1 回答不能使用input()
1 回答為什么不能提交
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網安備11010802030151號
購課補貼聯系客服咨詢優惠詳情
慕課網APP您的移動學習伙伴
掃描二維碼關注慕課網微信公眾號
2023-02-22
2022-04-28
這課程越到后面內容越跳越了,突然就出來一個新東西也不細講,根本就不知道在說點什么
2021-05-03
@是裝飾符
以原文為例,先定義了一個log()函數。
把想要裝飾函數factorial()上一行寫上 @log,就完成了用log()函數里的內容去“”裝飾“”factorial()函數里的內容。
通過@裝飾符,可以修飾某函數,使其完成自己想要的額外的功能