python全局变量

img


这个不是已经加了global x作为全局变量了吗为什么第一次输出print(x)还是10呢

因为第一次print的时候还没有进入f(),这个时候x没有修改,直到调用了f()
才引起x的变化,你可以把你的代码执行顺序这样理解

x=10
print(x)
def f():
    global x
    x =0
    print(x)
f()
print(x)

没有问题啊,第一输出你并并没有调用函数,没有重新赋值,自然是10