看板 Python 關於我們 聯絡資訊
我想請問關於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://www.ptt.cc/bbs/Python/M.1564360471.A.965.html
IAMPF: 耶... 我這邊跑16耶 07/29 08:42
os653: 你寫錯答案了吧?直覺想法是f=inner,所以跑出5*2+6=16? 07/29 08:45
yangs0618: 我猜是5*x+b吧 07/29 13:02
lemon651: 你return inner就是return inner那個method阿... 07/29 15:37
germun: 我猜你根本板書抄錯了 應該是5*x+b 然後函式都少了參數 07/29 15:56
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
s860134: f = outer() 下一行你加個 print(f),這個輸出結果你懂嗎 07/30 21:09
s860134: 如果你不懂 f 為什麼是那個結果 那你其他都不會懂 07/30 21:10