python全局变量与命名空间

[python]
KEY_WORD = "A"

def temp():
print KEY_WORD
KEY_WORD = "B"
[/python]

这段代码运行会提示变量KEY_WORD在定义前使用。原因是因为一旦在函数中修改全局变量,则python会将全局变量认成局部变量,在函数的命名空间内寻找其定义。如果要修改全局变量,要在函数内使用global关键字进行声明。如下:

[python]
KEY_WORD = "A"

def temp():
global KEY_WORD
print KEY_WORD
KEY_WORD = "B"
[/python]

当然,我个人更倾向将全局变量只作为常量。

This entry was posted in Code, Python and tagged , , . Bookmark the permalink.

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

Note: If you are replying to another commenter, click the "Reply to {NAME} ↵" button under their comment!