编写全局配置文件的正确方法是什么?

时间:2019-06-04 03:58:07

标签: python python-3.x

我需要编写一个配置文件,以便导入此配置的任何其他.py文件都能够访问其中的变量。

现在,我还想根据argparse的输入参数来修改main.py中的某些变量。但是,我不知道如何对其他文件进行修改。

例如,在config.py中:

VariableA = 5

func.py中:

import config

def display():
    print(config.VariableA)

main.py中:

import config
from func import display
config.VariableA = 10
display()  # 5

输出将是5而不是10。如何修改config.py中的变量,使其对其余脚本起作用?

我试图定义一个类并将变量设置为此类的静态变量,例如:

class Config:
    VariableA = 5

Config.VariableA = 10

这确实起作用。但是我不知道这种解决方案是否是最合适的方法?

1 个答案:

答案 0 :(得分:0)

如果从main运行其他脚本(通过使用import),则您所要求的内容实际上是有效的,并且始终使用config.来限制设置访问权限。如果单独启动其他脚本,则它们不会共享main的相同名称空间,因此您必须保留设置并从磁盘或环境中读取它们。