2 Star 6 Fork 5

AmCoder / AmCoder

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
配置文件.md 983 Bytes
一键复制 编辑 原始数据 按行查看 历史
AmCoder 提交于 2020-05-30 10:25 . 第一次提交
  • settings.py内容如下:
class foo():
    NAME = '张三'
    AGE = '44'
  • 读取配置文件中的内容如下:
path = "settings.foo"
  • 根据上述字符串进行分割出配置文件名称和配置文件中的类名
fileName,className = path.rsplit('.',maxsplit=1)
  • 动态导入配置文件模块
module = importlib.import_module(fileName)
  • 是否含有foo这个类属性
cla = getattr(module,className)
  • 通过dir传入的参数来获取参数的属性,如果没有传入参数则显示当前所有的参数属性
for key in dir(cla):
    if key.isupper():#获取为大写字母的key
        print(getattr(a,key))# 44 张三
  • 示例应用:

flask中的动态加载配置文件的方法app.config.from_object('配置文件名称.类名称') 等价于上面的一堆分割,导入,加载属性等。

from_object使用的是importlib getattr ,django 中间件也是用的这种反射的方式

其他
1
https://gitee.com/AmCoder/AmCoder.git
git@gitee.com:AmCoder/AmCoder.git
AmCoder
AmCoder
AmCoder
master

搜索帮助