python - 如何在不列出每个全局变量的情况下导入大量全局变量? (Python)

标签 python import

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/

相关文章:

导入后 JavaScript 无法识别代码

带有 CTL(复杂文本布局)语言的 python-docx add_style

python - 检查两个列表是否在一个 pandas 列中

javascript - es6如何导入已经在另一个js包中定义的

xml - SET @xml = 文件路径

java - 导入所有 Java 库

import - "more pythonic"是将所有导入放在顶部还是按需?

python - 如何使用python从Dynamics web api下载超过5000条记录?

python - 如何替换 xarray 变量中的值?

python - 在 matplotlib v1.2.1 中删除轴的工作方式与 v1.1.1 类似