[您好,我想知道是否有一种方法可以声明一个可以从任何函数修改的变量而无需使用global关键字,因为我有很多函数可以修改某个变量,而有一半的时间我却忘记了[ C0]在创建修改myvar的新函数时。
global myvar
。创建新对象时,可以初始化变量并将其用于该对象的任何方法。 这些变量的前缀为classes。
self.
当您要在函数内操作非容器变量时,可以通过以下方式进行:创建具有内容的文件globals.py:
#!/usr/bin/env python # -*- coding: utf-8 -*- global_var1 = {} global_var2 = 10 global_var3 = [] def manipulate_globals1(): # this is the behavior you want global_var1['new_entry'] = 10 global_var3.append(10) # this would fail # global_var2 += 10 # but this works global global_var2 global_var2 += 10 def manipulate_globals2(): # here we create scoped variables with the same name as the globals global_var1 = [] global_var2 = 5 if __name__ == '__main__': print(global_var1, global_var2, global_var3) manipulate_globals1() print(global_var1, global_var2, global_var3) manipulate_globals2() print(global_var1, global_var2, global_var3)
在您的主/核心文件中:
a = 10 b = 20
尽管这是一种不好的做法,并且您不应该使用全球通货膨胀率
import globals
def manipulate_globals():
globals.a = 20
globals.b = 30
if __name__ == '__main__':
manipulate_globals()
print(globals.a, globals.b)