python 全局变量怎么用

2025-04-16 00:52:56
推荐回答(1个)
回答(1):

在内部用之前加上global x的声明,就是全局变量

两个例子

a=1
def f():
    a=2
    print a

f()
print a

a=[1]
def f():
    a[0]=2
    print a[0]

f()
print a[0]

第一个函数里一旦a=2这样写,就相当于定义了一个新的变量a,这个变量a只在函数内有效,如果想让他引用全局的a,就要在前面加一句global a。第二个函数里a[0]列表取值先于赋值操作,会自动找到上一级里的a,这时操作的a[0]实际上是全局变量,没必要加global a。

说的易懂点:在内部使用global这样的声明,会让人产生这样的错觉,即内部只能用内部的变量,要用外部的变量必须global声明,这是错误的。global只是为了规避赋值操作的意思表达不明,python调用变量如果内部找不到自动会去寻找外部变量,就像第二个例子。