""" 奇怪的Python代码,谁能帮我解释一下?? """ x = 0 y = 0 def fun(): # 定义fun函数 x = 1 y = 1 class Test: # 定义Test类 global x,y print(x,y) x = 10 fun() # 调用fun函数 """
这个程序定义了两个全局变量,分别叫做x和y。
在名为fun的函数中,定义了同名的叫x,y的局部变量。
在fun函数里面的Test类。它会打印x,y的值,并且改变x的值。
在这个print语句中,打印的是全局变量的x和y的值还是局部变量的x,y的值呢?
如果打印的是全局变量的值,那么输出都为0。
如果打印的是fun内的局部变量的值,那么输出都应该为1。
如果在print语句前明确的申明x,y为global,那么肯定输出0,0。代码就像下面这样:
如果明确的申明x,y为nonlocal,那么肯定输出1,1。
代码就像下面这样:
可是本程序没有明确,结果也出乎意料,输出的都不是以上所设想的值。
“””
发表评论