我有一个名为table_builders.py
的文件,在那里我定义了多个类。在另一个脚本中,我正在循环导入它们。我试图导入的类在builders_list
中列出。
下面是我如何导入的。
import table_builders
for b in builders_list:
try:
globals()[b] = getattr(table_builders, b)
print(f'Successfully imported {b}')
except ImportError as e:
print(f'\nError importing {b}. \n{e}')
字符串table_builders.py
中并没有定义builders_list
中的所有类,但是由于我是在try:
语句中进行导入的,所以我希望代码导入所有已经定义的类,跳过那些还没有定义的类。
然而,当第一次导入失败时,程序会立即退出。终端显示:
Successfully imported CustomersBuilder
Successfully imported FacilitiesBuilder
Traceback (most recent call last):
File ......
globals()[b] = getattr(table_builders, b)
AttributeError: module 'table_builders' has no attribute 'CustomerFulfillmentPoliciesBuilder'
型
请注意,except
中的print语句实际上从不打印。
为什么getattr()在try:语句中抛出错误时退出程序?
有没有其他方法来执行导入,以便在导入失败时程序不会退出?
谢谢你,谢谢
1条答案
按热度按时间wnrlj8wa1#
感谢那些在原始帖子下面评论的人。我捕捉到了错误的错误(实际上并没有在循环中导入)。