以下程序中,函数中可以直接打印出全局变量x,而无须使用关键字global:
- x = 1
- def run():
- print x
- if __name__ == '__main__':
- run()
- x = 1
- def run():
- print x
- x = 2
- if __name__ == '__main__':
- run()
以上程序中python发现变量x在函数内部被赋值,则将x识别为局部变量,此时局部变量还未赋值时就被使用,所以报错。
加上global关键字后,可以得到希望的结果:
- x = 1
- def run():
- global x
- print x
- x = 2
- if __name__ == '__main__':
- run()