在此代码中:
> python
>>> a = []
>>> for i in range(2):
... def printer():
... print i
... a.append(printer)
...
>>> a
[<function printer at 0x01EDE330>, <function printer at 0x01EDE2F0>]
>>> a[0]()
1
>>> a[1]()
1
>>>
>>> a[0] == a[1]
False
看来我创建了两个不同的函数,并将它们存储在数组a[]
中。
我不明白为什么函数看起来不同,但每个函数的结果都不是。我原以为这两个函数都是相同的(IE第二次迭代会重新定义第一次迭代),或者函数会不同和结果会有所不同(分别为0和1)
我希望并期待后者...