Python命名空间和作用域

上一篇 / 下一篇  2015-09-26 20:43:11 / 个人分类:Python学习

      一个Python表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。

       每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。

      Python会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。

      global VarName的表达式会告诉Python, VarName是一个全局变量,这样Python就不会在局部命名空间里寻找这个变量了。


Money=2000defAddMoney():# 想改正代码就取消以下注释:# global MoneyMoney=Money+1printMoneyAddMoney()printMoney
如果没有了注释掉的那句代码,调用AddMoney就会报错
Traceback (most recent call last):
  File "<pyshell#72>", line 1, in <module>
    AddMoney()
  File "<pyshell#70>", line 2, in AddMoney
    Money=Money+1
UnboundLocalError: local variable 'Money' referenced before assignment
总结:如果要给全局变量在一个函数里赋值,必须使用global语句。

TAG: 空间 命名

 

评分:0

我来说两句

日历

« 2024-03-26  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

数据统计

  • 访问量: 3956
  • 日志数: 5
  • 建立时间: 2014-08-07
  • 更新时间: 2018-04-08

RSS订阅

Open Toolbar