这篇文章主要介绍了 Python 教程之全局变量用法, 结合实例形式分析了 Python 全局变量的定义、修改等使用方法及注意事项, 需要的朋友可以参考下
Python 是一种面向对象、解释型计算机程序设计语言,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。Python 语法简洁而清晰,具有丰富和强大的类库。它常被昵称为胶水语言,它能够把用其他语言制作的各种模块(尤其是 C/C++)很轻松地联结在一起。
本文实例讲述了 Python 全局变量用法。分享给大家供大家参考,具体如下:
全局变量不符合参数传递的精神,所以,平时我很少使用,除非定义常量。今天有同事问一个关于全局变量的问题,才发现其中原来还有门道。
程序大致是这样的:
- CONSTANT = 0
- def modifyConstant() :
- print CONSTANT
- CONSTANT += 1
- return
- if __name__ == '__main__' :
- modifyConstant()
- print CONSTANT
运行结果如下:
UnboundLocalError: local variable 'CONSTANT' referenced before assignment
看来,全局变量在函数 modifyConstant 中边成了局部变量,似乎全局变量没有生效?
做点修改:
- CONSTANT = 0
- def modifyConstant() :
- print CONSTANT
- #CONSTANT += 1
- return
- if __name__ == '__main__' :
- modifyConstant()
- print CONSTANT
运行正常,看来函数内部是可以访问全局变量的。
所以,问题就在于,因为在函数内部修改了变量 CONSTANT,Python 认为 CONSTANT 是局部变量,而 print CONSTANT 又在 CONSTANT += 1 之前,所以当然会发生这种错误。
那么,应该如何在函数内部访问并修改全局变量呢?应该使用关键字 global 来修饰变量(有点像 PHP):
- CONSTANT = 0
- def modifyConstant() :
- global CONSTANT
- print CONSTANT
- CONSTANT += 1
- return
- if __name__ == '__main__' :
- modifyConstant()
- print CONSTANT
就这么简单!
希望本文所述对大家 Python 程序设计有所帮助。
来源: http://www.phperz.com/article/17/0329/237774.html