DEFINE1 = 1
DEFINE2 = 2
DEFINE3 = 3
...
DEFINE10 = 10
假设一个文件有 10 个全局常量,我想将它们导入到另一个文件中。
有没有更简单的方法来导入所有全局常量而不执行以下操作: from file_one.py import *.我不希望它导入整个文件,只导入全局变量。
from file_one.py import DEFINE1, DEFINE2, DEFINE3, ..............
最佳答案
首先,我认为完全可以像您所做的那样创建很多常量并将它们全部放入 constants.py
文件中,然后执行 from constants import *
- 我自己一直这样做。只要我的所有常量都在该文件中定义,当我需要弄清楚 SOME_CONSTANT
的来源时,我就知道该去哪里找。
但我暂时假设您有一个包含很多常量的模块,它们都由大写字母、数字和下划线组成。那时你可以做一些非常骇人听闻的事情,比如
import re, file_one
for name,val in file_one.__dict__.items():
if re.match("[A-Z0-9_]+", name):
globals()[name] = val
我强烈建议不要使用这种 hackery,但这样可以自动导入您定义的常量,而无需单独列出它们。
关于python - 如何在不列出每个全局变量的情况下导入大量全局变量? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928629/