【发布时间】:2020-07-13 09:52:25
【问题描述】:
for x in range(10):
arr.append(lambda:x**2)
arr[4]()
预期输出:16 或没有,因为没有打印语句 但是,当我运行时,输出是 81。为什么会这样?
【问题讨论】:
-
您在交互式解释器中运行它。 (那个,还有stackoverflow.com/questions/12423614/…)
-
数组中的每个元素都是一个函数(或 lambda)。所以 arr[4] 是一个函数, () 是一个函数调用
-
另外,听起来你已经知道这段代码中所有括号的作用,如果你理解的足够多,可以期待 16 或没有。
标签: python