在使用Python编写的应用的过程中,有时会遇到多个文件之间传递同一个全局变量的情况,此时通过配置文件定义全局变量是一个比较好的选择。
首先配置config.py模块,config需要设置get_xxx和set_xxx的方法提供对外的接口
class global_var: '''需要定义全局变量的放在这里,最好定义一个初始值''' name = 'my_name' # 对于每个全局变量,都需要定义get_value和set_value接口 def set_name(name): global_var.name = name def get_name(): return global_var.name
import config # 引用全局变量 name = config.get_name() # 修改全局变量 config.set_name('new_name') # 查看修改后的全局变量 print(config.get_name())
实践一下:
建立三个文件,分别是
main.py
import config import time from change import change_name for i in range(100): name = config.get_name() print(name) config.set_name('new_name') print(config.get_name()) time.sleep(1) change_name()
config.py
class global_var: name = 'my_name' def set_name(name): global_var.name = name def get_name(): return global_var.name
change.py
import config def change_name(): config.set_name('new_name1111') print(config.get_name())
然后执行main.py,结果如下,出现两次new_name1111 说明在多个文件之间已经共享了name这个变量。
new_name
new_name1111
new_name1111
new_name
new_name1111
new_name1111
new_name
发表评论