作用域(全局变量和局部变量)

匿名 (未验证) 提交于 2019-12-02 23:52:01

>>> 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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!