這裏是一個示例代碼變化值的局部空間內通過一個函數:在局部空間
def foo():
def bar():
foobar = 'foobaz'
foobar = 'foobar'
print foobar
bar()
print foobar
foo()
我想通過功能bar
改變可變foobar
內foo
。上面的代碼將不起作用,因爲bar
中的foobar
與中的foobar
位於單獨的命名空間中。一個簡單的解決方法將使全球foobar
和foo
和bar
都可以訪問它,但我希望會有更簡單的解決方法。
又有什麼用呢?它可以在py3中用'nonlocal'完成,但是呃...仍然是 –
@JonClements我需要這樣做。 –
@JonClements一個例子:http://pastebin.com/2HjFSngE - 在給定值上分割一個迭代器。 –