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

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

裝飾器這一節中為什么非要在定義一個內部的fn(x)

如題,定義了new-fn(f)之后為什么不能直接print然后return。為什么還要再定義一個new-fn內部的函數fn(x)?謝謝?

正在回答

1 回答

decorator?本質上就是一個高階函數,它接收一個函數作為參數,然后,返回一個新函數。對于參數不是一個的函數,調用將報錯

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

weixin_寶慕林2555023

那直接在new_fn中調用f為什么不行呢?即: def f1(x): return x*2 def new_fn(f): print 'call' + f.__name__ + '()' return f
2020-02-28 回復 有任何疑惑可以回復我~
#2

神樂_Nash 回復 weixin_寶慕林2555023

#########裝飾器 def nash(f): def time(x,y): print("x:time")#要打印的東西 return f(x,y)#日志 return time @nash def Nash(x,y): print(x*y) Nash(2,3)#測試 #相當于Nash = nash(Nash)即time函數 #Nash = time,此時Nash(2,3)x相當于time(2,3)
2020-04-13 回復 有任何疑惑可以回復我~
#3

神樂_Nash 回復 神樂_Nash

1.打印重復繁雜的內容(如:call' + f.__name__ + '()) 2.還要打印或返回被裝飾函數的內容 你說的代碼只實現了第一個,沒有實現第二個
2020-04-13 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
python進階
  • 參與學習       255563    人
  • 解答問題       3038    個

學習函數式、模塊和面向對象編程,掌握Python高級程序設計

進入課程

裝飾器這一節中為什么非要在定義一個內部的fn(x)

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

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

幫助反饋 APP下載

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

公眾號

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