全局变量不好,但在Python中默认使用
每个人都说,不要使用全局变量,它们是坏的,这没关系。但在Python中,如果不执行任何操作,所有变量默认为gobal。 有没有办法改变这个?。提前谢谢你。当做对不起,我的英语全局变量不好,但在Python中默认使用,python,global-variables,Python,Global Variables,每个人都说,不要使用全局变量,它们是坏的,这没关系。但在Python中,如果不执行任何操作,所有变量默认为gobal。 有没有办法改变这个?。提前谢谢你。当做对不起,我的英语 def function(): dic['one']=35 dic={} function() print(dic) 全局变量是一个命名变量,其值可以从任何范围重新分配。为了进入更高的范围并重新分配其中定义的变量,需要显式使用全局或非局部关键字。例如: def function(): global fo
def function():
dic['one']=35
dic={}
function()
print(dic)
全局变量是一个命名变量,其值可以从任何范围重新分配。为了进入更高的范围并重新分配其中定义的变量,需要显式使用
全局
或非局部
关键字。例如:
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
本身没有被修改,而是它引用的值(这是可能的,因为字典是一种可变的类型的值;您可以通过[]
操作符修改字典的内容)。如果我们试图在函数内部修改变量dic
,则此更改不会反映在外部范围中:
def function():
dic = {'one': 35}
dic={}
function()
print(dic) # prints {}
默认情况下,全局是什么意思?这取决于你在哪里定义它们。变量只有在任何函数或类之外定义时才是全局变量。不总是真的。如果在函数中声明,则它是局部的。如果必须修改非局部变量,则有关键字
非局部
和全局
。您在任何函数之外声明了变量,因此它们是全局变量。它们应该是本地的什么?