如何在python项目中写出像Django中一样功能的settings

一  核心文件目录结构

 

二  实现代码

resdme:
  在实现此功能主要用到的知识点及模块:
  1.反射
  3.内置方法dir
# 全局配置
NAME = 'root'
# 用户配置
NAME = 'personal'
from lib.conf import global_settings  # 全局默认配置
from config import setting  # 用户个人配置

class Settings():
    '''
    需要注意的是:
        1.在初始化的时候要将全局的配资放在个人的前面
        2.因为如果使个人的配置的权限高于全局的配置是需要将个人的放在全局的后面将其覆盖
    '''
    def __init__(self):
        # 默认全局的配置
        self.setSttr(global_settings)
        # 个人的配置
        try:
            self.setSttr(setting)
        except Exception as e:
            print('您要的配置信息不存在')

    def setSttr(self, conf):
        for key in dir(conf):
            if key.isupper():
                v = getattr(conf, key)
                setattr(self, key, v)
settings
= Settings()

在setting中取值:

from config import setting
name = setting.NAME
print(name)

# 显示结果
'''
personal
'''

 

转载于:https://www.cnblogs.com/zhaijihai/p/10246641.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值