Python 3
に関数オブジェクトのリストを追加すると、その順序が失われる可能性はありますか?Pythonリストの奇妙な動作
私の理解では、Pythonのリストを発注し、実際に
numbers = []
for i in range(10):
numbers.append(i)
print(numbers)
リターン期待通り[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
を実行していることでした。
私はこのMWEに似機能は、しかしオブジェクト追加した場合:
functions = []
for k in range(10):
def test():
print('This is the %i th function.' %k)
functions.append(test)
とfunctions[2]()
を呼び出して、私はThis is the 9 th function.
を取得誰かがこの奇妙な行動の意味を理解することはできますか?
[最近のバインディングの終了](http://docs.python-guide.org/en/latest/writing/gotchas/#late-binding-closures) –