【发布时间】:2021-05-05 16:31:13
【问题描述】:
有多个帖子讨论是否推荐这样做,但假设您想为您的 python 应用程序做一个config.py。以下两种(类似于我)方法有什么区别:
- 1)。将模块制作为 ini 文件,然后使用
exec(Path())解析它
如以下示例,取自here:
## config.py ##
value1 = 32
value2 = "A string value"
value3 = ["lists", "are", "handy"]
value4 = {"and": "so", "are": "dictionaries"}
然后
from pathlib import Path
if __name__ == "__main__":
config = {}
exec(Path("config.py").read_text(encoding="utf8"), {}, config)
print config["value1"]
print config["value4"]
- 2)。编写一个仅包含带有设置的字典的模块,然后导入该模块:
因此:
## config.py ##
DEFAULT = {
value1: 32,
value2: "A string value",
value3: ["lists", "are", "handy"],
value4 : {"and": "so", "are": "dictionaries"},
}
然后
import config.py
if __name__ == "__main__":
cfg = config.DEFAULT
print cfg["value1"]
print cfg["value4"]
【问题讨论】:
-
第二个肯定比简单地执行一个没有输入控制的文件要好...但是为什么不只是有一个
config.ini并使用内置的configparser读取呢?跨度>
标签: python