仅从fi导入特定功能

2024-10-03 06:21:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文件,foo.py

import UnavailableModule

class Bob:
    def useful_func(self, arg):
        # Do useful stuff (doesn't use UnavailableModule)

在同一目录中的另一个文件bar.py中,我需要useful_func(),但不能这样做

^{pr2}$

因为它的结果

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()?在


Tags: 文件inpyimportselffoousedef
1条回答
网友
1楼 · 发布于 2024-10-03 06:21:30

首先,useful_func是一个实例方法,您可以使用整个Bob类导入它,如下所示:

from foo import Bob

然后您可以创建Bob的对象,并使用如下函数:

^{pr2}$

但这并不能解决你的问题。我读到的问题是,UnavailableModule的导入是在导入foo模块时运行的。在

好吧,它会运行,因为导入就是这样工作的,所以可以用这样的构造阻止导入:

class Bob:
  def useful_func(self, arg):
      pass

if __name__ == '__main__':
  import UnavailableModule

这将阻止从另一个模块导入UnavailableModule模块时导入UnavailableModule。不过,我不确定这是否是一个好的做法。不过,这很管用。在

相关问题 更多 >