1 Star 0 Fork 0

月下独酌/ZBTV_Plus

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
dynamic_config.py 1.41 KB
一键复制 编辑 原始数据 按行查看 历史
JKmingo 提交于 2024-08-30 20:22 . Create dynamic_config.py
import os
class DynamicConfig:
def __init__(self):
self.config = {}
self.load_config()
def load_config(self):
"""
动态加载配置文件,将变量存储到 config 属性中。
"""
config = {}
try:
# 尝试加载用户配置文件
module_path = 'user_config.py'
if os.path.exists(module_path):
with open(module_path, 'r') as file:
exec(file.read(), config)
else:
# 加载默认配置文件
with open('config.py', 'r') as file:
exec(file.read(), config)
except Exception as e:
raise ImportError(f"Could not load configuration file: {e}")
# 过滤掉内置变量(如 __builtins__)
self.config = {k: v for k, v in config.items() if not k.startswith('__')}
def __getattr__(self, name):
"""
当使用 config.ftp_port 这样的方式访问变量时,调用此方法。
"""
return self.config.get(name, None)
def __getitem__(self, name):
"""
当使用 getattr(config, "ftp_port", None) 这样的方式访问变量时,调用此方法。
"""
return self.config.get(name, None)
def reload(self):
"""
当配置文件更改时,调用此方法重新加载配置。
"""
self.load_config()
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/T-GU/ZBTV.git
[email protected]:T-GU/ZBTV.git
T-GU
ZBTV
ZBTV_Plus
main

搜索帮助