我有一个文件foo.py
import UnavailableModule
class Bob:
def useful_func(self, arg):
# Do useful stuff (doesn't use UnavailableModule)
在同一目录中的另一个文件bar.py
中,我需要useful_func()
但不能这样做
from foo.Bob import useful_func
因为它会导致
problem: [Error 126] The specified module could not be found
An exception has occurred, use %tb to see the full traceback.
带跟踪的
C:\...\bar.py in <module>()
----> 1 from foo.Bob import useful_func
C:\...\foo.py in <module>()
----> 1 import UnavailableModule
是否可以通过其他方式获得useful_func()
?
答案 0 :(得分:1)
首先,您的.filter(key => !excludes.has(key))
是一个实例方法,您可以使用整个useful_func
类导入它,如下所示:
Bob
然后你可以创建from foo import Bob
的对象并使用你的函数:
Bob
但这并不能解决您的问题。我读到的问题是导入b = Bob()
b.useful_func('something useful i believe')
模块时导入UnavailableModule
。
好吧,它会被运行,因为这就是导入工作的方式,你可以使用这样的结构阻止这种导入:
foo
这会阻止从其他模块导入class Bob:
def useful_func(self, arg):
pass
if __name__ == '__main__':
import UnavailableModule
模块时导入UnavailableModule
。但是我不确定这是不是很好的做法。它虽然有效。