打印结果是0,1原理是什么?求解

x=0
y=0

def f():
x=1
y=1
class C:
print x,y

           x=2

f()

格式化一下代码,代码格式都乱了。

img

首先,最上面的x,y是全局变量
如果函数里不写global就给x和y赋值,那么x和y自动变成局部变量
如果你类C里面不写x=2,打印出来的会是1,1,是局部变量x,y的值
如果C里面写x=2,而且写在print后面,那么默认x是定义在C里面的,但是因为你在打印前没有给X赋值,所以它会获得一个默认的初值0