作者spong (請輸入ID)
看板Python
標題[問題] python閉包的語法
時間Mon Jul 29 08:34:29 2019
我想請問關於python閉包的語法該怎麼理解
範例如下
def outer():
b = 10
def inner(x):
return 5 * x + b
return inner
b = 2
f = outer()
print(f(b))
為什麼最後答案會是20
完全不了解,整個程式的流程
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.117.25.41 (臺灣)
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Python/M.1564360471.A.965.html
1F:→ IAMPF: 耶... 我這邊跑16耶 07/29 08:42
2F:→ os653: 你寫錯答案了吧?直覺想法是f=inner,所以跑出5*2+6=16? 07/29 08:45
3F:推 yangs0618: 我猜是5*x+b吧 07/29 13:02
4F:推 lemon651: 你return inner就是return inner那個method阿... 07/29 15:37
5F:→ germun: 我猜你根本板書抄錯了 應該是5*x+b 然後函式都少了參數 07/29 15:56
6F:推 windclara: f=outer 應該要有參數吧 07/29 22:29
貝~~不~~起~~各位,那時是在上班前看書,所以是5*x+b,看到的因為急著出門
(不然全勤就沒了)
※ 編輯: spong (122.117.25.41 臺灣), 07/30/2019 02:08:15
※ 編輯: spong (122.117.25.41 臺灣), 07/30/2019 02:09:24
7F:→ s860134: f = outer() 下一行你加個 print(f),這個輸出結果你懂嗎 07/30 21:09
8F:→ s860134: 如果你不懂 f 為什麼是那個結果 那你其他都不會懂 07/30 21:10