仅从文件导入特定函数
Import specific function only from file
我有一个文件,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()
?
首先你的 useful_func
是一个实例方法,你可以用整个 Bob
class 导入它,像这样:
from foo import Bob
然后您可以创建 Bob
的对象并像这样使用您的函数:
b = Bob()
b.useful_func('something useful i believe')
但这并不能解决你的问题。我读到的问题是,在导入 foo
模块时,UnavailableModule
的导入是 运行。
好吧,它将是 运行,因为这就是导入的工作方式,您可以使用以下结构来阻止此导入:
class Bob:
def useful_func(self, arg):
pass
if __name__ == '__main__':
import UnavailableModule
这将防止在从另一个模块导入 foo
模块时导入您的 UnavailableModule
。但是我不确定这是否是好的做法。虽然它有效。
我有一个文件,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()
?
首先你的 useful_func
是一个实例方法,你可以用整个 Bob
class 导入它,像这样:
from foo import Bob
然后您可以创建 Bob
的对象并像这样使用您的函数:
b = Bob()
b.useful_func('something useful i believe')
但这并不能解决你的问题。我读到的问题是,在导入 foo
模块时,UnavailableModule
的导入是 运行。
好吧,它将是 运行,因为这就是导入的工作方式,您可以使用以下结构来阻止此导入:
class Bob:
def useful_func(self, arg):
pass
if __name__ == '__main__':
import UnavailableModule
这将防止在从另一个模块导入 foo
模块时导入您的 UnavailableModule
。但是我不确定这是否是好的做法。虽然它有效。