从文件导入对象而不运行该文件的导入

时间:2012-11-08 17:27:16

标签: python

不确定这是否可行,但想知道是否有任何建议。

说我有一个文件foo.py,看起来像

import doesnotexist

bar = "Hello, World!"

我想要from foo import bar,但由于此新文件范围内不存在导入,因此会失败。

执行此操作的一种方法是将bar放入名为bar.py的新文件中,并foo.py也导入该文件,但如果可能,请跳过该文件。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

无法仅导入模块的一部分 - Python会在拉出您要求的部分之前加载整个模块。

如评论中所述,您可以捕获模块内的导入错误并忽略它。如果您尝试使用未导入的模块,则代码将生成错误。

try:
    import doesnotexist
except ImportError:
    pass

bar = "Hello, World!"