What does this print

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

f()  # 0 1

Python解释器首先会在类C中寻找有无变量x的定义,发现没有后,就直接跳转到全局变量中,发现了有全局的变量x,则就调用了全局的变量x,而对于变量y而言,首先在类C中并没有对变量y进行赋值操作,因此,变量y对于类C而言就是一个自由变量

Live what we love, do what we do, follow the heart, and do not hesitate.
原文地址:https://www.cnblogs.com/failan/p/14409138.html