在this answer的第一个示例之后,我将类的实现分为不同的模块,类似于
class MyClass:
from impl0 import foo00, foo01
from impl1 import foo10, foo11
我现在想基于仅在实例化时就知道的参数,导入某些方法的两种不同实现中的一种或另一种,例如,
class MyClass:
from impl0 import foo00, foo01
def __init__(self, par):
if par:
from impl1 import foo10, foo11
else:
from alternative_impl1 ipmort foo10, foo11
但是,像在前面的代码段中那样做只能将foo10和foo11的可见性限制为
__init__
函数。有没有办法做到这一点? 最佳答案
将模块分配给实例(或类)变量:
if par:
from impl1 import foo10, foo11
else:
from impl2 import foo10, foo11
self.foo10 = foo10
self.foo11 = foo11
关于python - 有条件地导入python类的片段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49733011/