Python, 基于py文件的配置, 其实现原理是?

浮生若梦的编程
  • 2.8k

实际现象

  1. 发现很多python工具( 如django, Sphinx), 都是以py文件做配置( 而不是常见的, 用 .json 文件 )
  2. 了解了标准库 importlib 的功能, 猜测可能是使用这个库实现相关功能
  3. 发现如果是基于py文件, 这样的配置很灵活( 毕竟编程语言中, 能嵌入逻辑 ), 我使用Django很多, 我发现把配置写在py文件里面, 让人很舒服

预期现象

  1. 具体原理是什么呢? ( 以Django为例)

相关代码

  • 我自己设想的一种实现
一般会在命令行, 传入py文件的文件名

1. 利用 importlib , 导入对应的模块( py文件 )
2. 得到一个模块对象, 然后我们可以从中取出对应的配置
回复
阅读 3.2k
4 个回答

一般项目中会把公用的对象写在一个叫common.py文件中,然后将其作为模块导入

Python 都是按模块编程的啊

一般需要配置的文件, 并没有那么多。 而且一般写入数据库 和 缓存

所以不需要 json 之类的配置

因为可以在需要调用配置参数的地方直接import导入这个py文件,然后直接调用里面的变量或其他属性吧,如果是json或者其他的文本格式,不是还需要解析文本嘛?我一直是这么理解的.... 也是因为这个才这么用的.....

因为import的模块里面的语句都是会执行的,所以可以进行一些配置,最典型的是就是

import this

会打印出Python之禅,
你也可以试试

from __future__ import braces

如果你怀念大括号的话

宣传栏