作用域
>>> x = 1 >>> scope = vars() >>> scope['x'] 1 >>> scope['x'] += 1 >>> x 2
警告
>>> def foo(): x = 42 ... >>> x = 1 >>> foo() >>> x 1
>>> def output(x): print(x) ... >>> x = 1 >>> y = 2 >>> output(y) 2
>>> def combine(parameter): print(parameter + external) ... >>> external = 'berry' >>> combine('Shrub') Shrubberry
警告
“遮盖”的问题
>>> def combine(parameter): ... print(parameter + globals()['parameter']) ... >>> parameter = 'berry' >>> combine('Shrub') Shrubberry
重新关联
>>> x = 1 >>> def change_global(): ... global x ... x = x + 1 ... >>> change_global() >>> x 2
def foo(): def bar(): print("Hello, world!") bar()
def multiplier(factor): def multiplyByFactor(number): return number * factor return multiplyByFactor
def multiplier(factor): def multiplyByFactor(number): return number * factor return multiplyByFactor >>> double = multiplier(2) >>> double(5) 10 >>> triple = multiplier(3) >>> triple(3) 9 >>> multiplier(5)(4) 20