首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Python中将任意变量设置为全局变量?

如何在Python中将任意变量设置为全局变量?
EN

Stack Overflow用户
提问于 2018-11-25 09:15:31
回答 1查看 622关注 0票数 0

如何在Python3函数中将变量动态设置为全局变量?如下所示:

代码语言:javascript
运行
复制
def func1(i):
    global i
    #Some operation on i

我如何让全局变量来设置传递给函数的任何预先存在的变量?这样:

代码语言:javascript
运行
复制
func1(foo)

将在全局变量foo上执行操作,而不是创建一个名为i的新全局变量

EN

回答 1

Stack Overflow用户

发布于 2018-11-25 11:08:49

如果我没弄错,您的问题是:我在模块级将一个名称绑定到某个对象;现在,我想编写一个函数来更改该全局名称到另一个对象的绑定,该对象作为参数传递给该函数。

在Python中,全局名称可以在一个函数中引用(假设您不将另一个对象绑定到相同的名称),但是要更改它们的绑定,您必须首先将这些名称声明为global。原因很简单:默认情况下,绑定在函数内的所有名称都有函数作用域。

代码语言:javascript
运行
复制
GLOBAL_NAME = 12
ANOTHER_GLOBAL_NAME = 50

def func(value):
    global GLOBAL_NAME
    GLOBAL_NAME = value
    print(GLOBAL_NAME, ANOTHER_GLOBAL_NAME)

当您调用func(33)时,GLOBAL_NAME将被绑定到对象33ANOTHER_GLOBAL_NAME只是对全局名称的引用;因为该名称没有绑定到函数中,所以Python将在全局范围内查找该名称。

有关Python作用域封闭的更多信息,可以参考the global statementPEP-0227PEP-3104上的Python文档。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53463867

复制
相关文章

相似问题

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