作者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/cn.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