首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明全局变量

声明全局变量
EN

Stack Overflow用户
提问于 2013-06-07 14:44:31
回答 4查看 1.1K关注 0票数 1

关于全局变量,我有两个问题:

  1. 为什么我不能将列表声明为全局变量:global list_ex = []
  2. 我已经定义了一个全局变量,我试图在函数中使用该变量,但不能: 全局列def fx_foo(cols):common =set(Cols).intersection(set(列)) #Error!

当我试图访问函数中的列时,会得到一个错误:

NameError:未定义全局名称“列”

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-07 14:53:45

您没有正确地使用global。您根本不需要使用它,

您需要实际设置一个全局column变量,现在没有。global没有使变量可用。只需首先创建一个全局column

代码语言:javascript
复制
column = []

然后在你的函数中引用它。这就是NameError异常试图告诉您的;Python找不到全局column变量,您没有为名称分配任何内容,因此它不存在。

如果要分配给函数中的全局global,则只需要使用column

代码语言:javascript
复制
def somefunction():
    global column
    column = [1, 2, 3]

在这里,需要global关键字来区分函数中的column和局部变量。

比较:

代码语言:javascript
复制
>>> foo = 1
>>> def set_foo():
...     foo = 2
...
>>> set_foo()
>>> foo
1

代码语言:javascript
复制
>>> foo = 1
>>> def set_foo():
...     global foo
...     foo = 2
...
>>> set_foo()
>>> foo
2

第一个表单只设置一个局部变量,第二个表单则设置全局变量。

票数 8
EN

Stack Overflow用户

发布于 2013-06-07 14:49:41

关键字全局表示您正在显式地使用在函数作用域之外声明的变量。

您的变量必须正常声明:

代码语言:javascript
复制
column = []

并在使用它的函数中声明为全局的。

代码语言:javascript
复制
def fx_foo(cols):
    global column
    common = set(cols).intersection(set(column))

它用于允许python区分新的局部变量和重用的全局变量。

票数 1
EN

Stack Overflow用户

发布于 2013-06-07 14:59:22

这将起作用:

代码语言:javascript
复制
column =[]

def fx_foo(cols):
    global column
    common = set(cols).intersection(set(column)) 

但是,即使没有global,这也是可行的,因为column在这里被认为是非本地的。

代码语言:javascript
复制
column =[]
def fx_foo(cols):
    common = set(cols).intersection(set(column)) 

我认为如果您想要显示column特性,那么将数据分配给global会更有趣(因为您可以使用来自非局部变量的列,而不需要全局声明,如果您没有为它分配任何东西)

代码语言:javascript
复制
column =[]
def fx_foo(cols):   
    global column     
    column = set(cols).intersection(set(column)) 

代码语言:javascript
复制
def fx_foo(cols): 
    column =[]          
    global column 
    column = set(cols).intersection(set(column)) 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16986887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档