Python中的命名空间和作用域
变量是映射到对象的名称(标识符)。命名空间是变量名(键)及其对应对象(值)的字典。
Python语句可以访问本地命名空间和全局命名空间中的变量。如果局部变量和全局变量具有相同的名称,则局部变量将覆盖全局变量。
每个函数都有其自己的本地命名空间。类方法遵循与普通函数相同的作用域规则。
Python对变量是局部变量还是全局变量进行了有根据的猜测。它假定在函数中分配了任何值的任何变量都是局部变量。
因此,为了向函数内的全局变量分配值,必须首先使用global语句。
语句globalVarName告诉PythonVarName是全局变量。Python停止在本地命名空间中搜索变量。
例如,我们在全局命名空间中定义一个变量Money。在Money函数中,我们为Money分配一个值,因此Python假定Money为局部变量。但是,我们在设置之前访问了局部变量Money的值,因此结果为UnboundLocalError。取消注释全局语句即可解决该问题。
#!/usr/bin/python Money = 2000 def AddMoney(): # Uncomment the following line to fix the code: # global Money Money = Money + 1 print Money AddMoney() print Money
热门推荐
10 对患者生日祝福语简短
11 结婚祝福语简短装备
12 周岁祝福语学生文案简短
13 订婚领证祝福语简短精辟
14 导师获奖祝福语大全简短
15 新婚购房祝福语简短精辟
16 牛年祝福语简短的爱人
17 送芒果的祝福语简短
18 送给学长毕业祝福语简短