我正在创建一个包含多个类的模块。我的问题是其中一些类需要导入非常具体的模块,这些模块需要手动编译或需要特定的硬件才能工作。
没有兴趣预先导入每个特定模块,并且由于某些模块需要特定硬件才能工作,它甚至可能引发错误。
我想知道是否可以仅在需要时导入这些模块,即在精确类的实例化时,如下所示:
class SpecificClassThatNeedRandomModule(object):
import randomModule
此外,我不确定这是否是一种很好的 pythonic 方式来完成这个技巧,所以我愿意接受有关正确方法的建议。
最佳答案
可以在实例化时导入模块:
class SpecificClassThatNeedRandomModule(object):
def __init__(self):
import randomModule
self.random = randomModule.Random()
但是,这是一种不好的做法,因为它很难知道导入何时完成。您可能想要修改您的模块,使其不会引发异常,或捕获 ImportError
:
try:
import randomModule
except ImportError:
randomModule = None
关于python - 导入类实例化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30844050/