无意中发现python3和python2中关于global比较有趣的不同

摘要

  • global 一般用于修改全局变量
  • 代码展示的是,在修改全局变量之前调用全局变量会怎样
    • python3.65会报错,代码中断
    • python2.7 会警告,不影响代码运行

code

# coding:utf-8

a=True

def func():
	if a:
		print("123")
		global a
		a=False

print(a)
func()
print(a)

# 测试发现:SyntaxError: name 'a' is used prior to global declaration
# 在更改全局变量前调用全局变量了
# 又经过测试发现,在python2.7中虽然会警告,但是不影响程序的继续运行,而python3中则是会直接报错
# 
# py3.65输出:
# SyntaxError: name 'a' is used prior to global declaration
# py2.7输出:
# SyntaxWarning: name 'a' is used prior to global declaration
# global a
# True
# 123
# False

总结

  • 现在python3已经快全覆盖了,我们在修改全局变量之前要注意了,不要在修改之前使用它哦
发布了55 篇原创文章 · 获赞 3 · 访问量 2746

猜你喜欢

转载自blog.csdn.net/rusi__/article/details/102810539
今日推荐