【发布时间】:2022-01-02 17:12:22
【问题描述】:
我想整齐地导入文件中名称中包含“_COLUMN”的所有变量。我这样做是因为有 20 多个变量,并且 normal 导入语句会很大。我还希望变量可以直接访问,例如TIME_COLUMN 而不是 earthquakes.tools.TIME_COLUMN
以下代码有效:
import earthquakes.tools
for item in dir(earthquakes.tools):
if '_COLUMN' in item:
exec(f'from earthquakes.tools import {item}')
这被认为是 Pythonic 吗?如果没有,是否有更好的方法或者甚至不应该这样做?
有关信息,我尝试在导入语句和其他解决方案中搜索正则表达式,但没有发现任何重要的信息。
请不要提及from ... import *,因为它不是Pythonic
【问题讨论】:
-
import earthquakes.tools不是已经全部导入了吗? -
必读 nedbatchelder.com/blog/201112/… 和 stupidpythonideas.blogspot.com/2013/05/… 很可能最好使用字典而不是单个名称。
-
foo_COLUMN = earthquake.tools.foo_COLUMN对应每个相关的foo。使用dir进行查询没有多大意义,因为如果您不知道哪些列已经存在,那么您将不知道循环使哪些变量可用。 -
@ScottHunter 确实如此,但我希望它们可以直接访问。我编辑了问题以反映这一点。
-
@chepner 即使有 20 多个变量并且数量可能会增长?
标签: python python-3.x import