如何更改 Python 中的默认全局变量?

问题描述 投票:0回答:1

大家都说不要使用全局变量。但是,在 Python 中,默认情况下所有变量都是全局的。有什么办法可以改变这个吗?

def function():
    dic['one']=35
    
dic={}
function()
print(dic)
python global-variables
1个回答
2
投票

全局变量是一个命名变量,其值可以从任何范围重新分配。 为了进入更高的范围并重新分配在那里定义的变量,您需要显式使用 global

nonlocal
 关键字。  例如:

def function(): global foo foo = 5 foo = 3 function() print(foo) # prints 5

默认情况下,变量

不是全局的:

def function(): foo = 5 foo = 3 function() print(foo) # prints 3

在您的示例中,变量

dic

 本身并未被修改,而是它引用的值(这是可能的,因为字典是 
mutable 类型的值;您可以通过 [] 修改字典的内容
 运算符)。  如果我们尝试修改函数内部的变量
dic
,则此更改不会反映在外部作用域中:

def function(): dic = {'one': 35} dic={} function() print(dic) # prints {}
    
© www.soinside.com 2019 - 2024. All rights reserved.