我正在尝试构建一个简单的迭代代码,通过变量列表并从文件中检查它。
例如,它可以有两个变量foo1
和foo2
,我可以做以下操作
try:
from file import foo1
except ImportError:
foo1 = None
try:
from file import foo2
except ImportError:
foo2 = None
…等等。然而,现在我的变量列表变长了。是否有更简单的方法将我的变量(即foo1
,foo2
,foo3
等)放入列表中,并尝试查看它是否存在于"文件"中;而不是重复这个试着抓住的过程?
我尝试了以下操作,但它不起作用,特别是当foo1或foo2确实存在时。
my_list = ['foo1', 'foo2']
for listElem in my_list:
try:
from file import listElem
except ImportError:
print ("Can't find",listElem,"in file")
感谢你可以这样做:
import file
my_list = ['foo1', 'foo2']
for listElem in my_list:
if not (value := getattr(file, listElem, None)):
print ("Can't find",listElem,"in file")
globals()[listElem] = value
globals()
是一个包含所有顶级名称的字典。我们在上面的代码片段中所做的是使用my_list
中的名称创建全局变量。