废话不多说,直接上代码。golbal_settings是默认配置。
import os
import importlib
from . import golbal_settings
class Setting(object):
'''
配置类,仿照Django的配置
'''
def __init__(self):
# 先拿默认的配置
self.__set_conf(golbal_settings)
try:
# 在bin文件中,就将用户配置放到os的环境变量中,然后通过importlib模块取出
user_setting = importlib.import_module(os.environ.get('USER_CONF'))
# 再拿用户配置,如果用户配置与默认配置重复,则用户个人配置覆盖默认配置
self.__set_conf(user_setting)
except Exception:
raise ('此配置不存在')
def __set_conf(self,conf):
# 将配置的内容setattr到setting对象里
for setting in dir(conf):
if setting.isupper():
setattr(self,setting,getattr(conf,setting))
settings = Setting()