variable= 0
def func():
global variable #(or variable = None)
variable = 1
def display():
print(variable)
func()
display()
"全局变量"有什么区别?或"变量=无" ?
答案 0 :(得分:2)
我认为主要区别在于宣布全球将为所有职能开辟范围。 但将其声明为None只会初始化一个未初始化的变量并创建一个新的局部变量。
答案 1 :(得分:1)
函数内部变量的默认范围是本地的。因此,当您指定variable = None时,您将创建一个局部变量并为其分配none。然而,如果您将其声明为全局变量,那么您将修改之前初始化的全局变量。
答案 2 :(得分:1)
在python中,在函数外部初始化的任何全局变量都可以在函数内部访问。但是,只有在将其用作只读变量时,此访问才是自动的。
如果在函数内指定相同的名称,则会创建一个本地范围的新变量。 global关键字告诉python你不想要一个本地实例,但是想在外面修改全局变量。
因此在您的示例中,func()修改全局变量,即使没有global关键字,也可以在只读模式下从display()访问相同的变量。但是,如果在没有全局关键字的情况下为func()中的变量分配None,则表示您正在创建新的局部变量。因此,在display()中,您将看到未修改的全局变量。