Max*_*Kim 1 python global-variables
我有2个关于全局变量的问题:
global list_ex = []?我已经定义了一个我试图在函数中使用的全局变量,但是不能:
global column
def fx_foo(cols):
common = set(cols).intersection(set(column)) #Error Here!!
Run Code Online (Sandbox Code Playgroud)当我尝试访问函数内的列时,我收到一个错误:
NameError:未定义全局名称"列"
你没有global正确使用.你并不需要使用它在所有.
你需要实际设置一个全局column变量,现在没有.global不会使变量可用.只需创建全球column第一:
column = []
Run Code Online (Sandbox Code Playgroud)
然后在你的函数中引用它.这就是NameError异常试图告诉你的; Python无法找到全局column变量,您没有为名称指定任何内容,因此它不存在.
global如果要在函数中分配全局column ,则只需使用:
def somefunction():
global column
column = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)
这里global需要关键字来区分函数中column的局部变量.
相比:
>>> foo = 1
>>> def set_foo():
... foo = 2
...
>>> set_foo()
>>> foo
1
Run Code Online (Sandbox Code Playgroud)
至
>>> foo = 1
>>> def set_foo():
... global foo
... foo = 2
...
>>> set_foo()
>>> foo
2
Run Code Online (Sandbox Code Playgroud)
第一种形式只设置局部变量,第二种形式设置全局变量.