"""
奇怪的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。
代码就像下面这样:
可是本程序没有明确,结果也出乎意料,输出的都不是以上所设想的值。
“””
