亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

能不能通俗地解釋一下這節課學了個啥?

課中一直在說@用法,但是我一直沒參透出@的作用和用法,大佬們講講這個@一般什么時候用,用在哪?

正在回答

3 回答

#定義裝飾器函數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))
4 回復 有任何疑惑可以回復我~

這課程越到后面內容越跳越了,突然就出來一個新東西也不細講,根本就不知道在說點什么

4 回復 有任何疑惑可以回復我~
#1

時頌望見

確實,后面太粗糙了,很多邏輯都沒理
2023-12-14 回復 有任何疑惑可以回復我~

@是裝飾符

以原文為例,先定義了一個log()函數。

把想要裝飾函數factorial()上一行寫上 @log,就完成了用log()函數里的內容去“”裝飾“”factorial()函數里的內容。

通過@裝飾符,可以修飾某函數,使其完成自己想要的額外的功能

6 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消

能不能通俗地解釋一下這節課學了個啥?

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號