使用类属性
可以在模块间共享数据
global_vars.py:
1 | class GlobalVars: |
main.py:
1 | from global_vars import GlobalVars |
使用 Singleton 模式
如果你需要确保某个类只有一个实例,并且提供一个全局点来访问它,可以使用 Singleton 模式。
可以在模块间共享数据
singleton.py:
1 | class Singleton: |
main.py:
1 | from singleton import Singleton |
使用global关键字
注意
只能在模块内不同函数间共享
global
关键字用于声明一个变量是全局变量,但它只能在当前模块中生效。
也就是说,global
关键字的作用范围仅限于当前模块(Python 文件)。
在函数内部,如果你想修改全局变量,可以使用 global
关键字。
main.py:
1 | global_variable = "Hello, World!" |
不定义也不会报错
1 | def mfun(): |
这样就必须在外层定义,否则未调用方法前会报错
1 | global_variable=5 |
if __name__ == "__main__"
中定义的变量不用加global
,也是全局变量
1 | def modify_global_variable(): |
但是修改的时候要加global
1 | def modify_global_variable(): |
也就是说
- 入口中定义的变量不用
global
声明也是全局变量。 - 函数中修改全局变量必须再使用
global
声明。