直奔主题实战 Python 全局变量, 注意分析输出的结果:在 hello1 中,其实操作的是局部变量 GLOBAL_VAR (其名字有点唬人),hello2()的两次调用操作的都是全局变量 GLOBAL_VAR
#!/usr/bin/env python
# -*- coding: utf-8 -*-
GLOBAL_VAR = 3
def hello1():
print 'In the hello'
tmp = 1
# 因为函数中也可定义同名的变量,这样局部的变量就覆盖了全局的变量
GLOBAL_VAR = 30
GLOBAL_VAR = GLOBAL_VAR + tmp
print 'GLOBAL_VAR = {0}'.format(GLOBAL_VAR)
def hello2():
print 'In the hello'
tmp = 1
# 因为函数中也可定义同名的变量,这样局部的变量就覆盖了全局的变量,
# 要想改变全局变量的值,需要在函数中 global GLOBAL_VAR 说明 GLOBAL_VAR 是全局变量
global GLOBAL_VAR
GLOBAL_VAR = GLOBAL_VAR + tmp
print 'GLOBAL_VAR = {0}'.format(GLOBAL_VAR)
hello1()
hello2()
hello2()
# The output is:
In the hello
GLOBAL_VAR = 31
In the hello
GLOBAL_VAR = 4
In the hello
GLOBAL_VAR = 5