可以说我有很多密钥对数据。我希望将此数据放在一个包中,以便可以导入。是否出于性能和可扩展性的原因,有没有办法使模块像字典一样工作?

例:

common/pairs/
 ├── BUILDINGS.py
 └── __init__.py

import BUILDINGS

BUILDINGS["foo"] == "bar"


注意:可以通过在BUILDINGS中放置__init__.py来归档所需的结果,但是它们每次都将被编译,并且不会被拖动和删除,而且看起来很丑。

有没有办法做到这一点?有没有办法做到这一点?

最佳答案

并非我建议这样做,但是您可以将dict分配给sys.modules。 Python不在乎实际上有一个模块对象。

# BUILDINGS.py
from sys import modules
if __name__ != "__main__":
    modules[__name__] = {'a': 1, 'b': 2, ...}

10-07 21:35