Pythonの字句クロージャの質問からコードを試しています
flist = []
for i in xrange(3):
def func(x): return x*i
flist.append(func)
for f in flist:
print f.func_closure
出力は次のとおりです。
None
None
None
すべきではないですか?:
(<cell at 0x9222d94: int object at 0x8cabdbc>,)
(<cell at 0x9222d94: int object at 0x8cabdbc>,)
(<cell at 0x9222d94: int object at 0x8cabdbc>,)
次のコードを使用して上記の出力を取得しました。
flist = []
def actualFact():
for i in xrange(3):
def func(x): return x * i
flist.append(func)
for f in flist:
print f.func_closure
Python 2.6.6(r266:84292、2010年9月15日、15:52:39)を使用しています。