有条件地导入 python class 的片段

conditionally import pieces of a python class

按照 this answer 的第一个示例,我将 class 的实现拆分到不同的模块中,类似于

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__ 函数。有没有办法实现这个 class-wise?

将模块分配给实例(或class)变量:

if par: 
   from impl1 import foo10, foo11
else:
   from impl2 import foo10, foo11
self.foo10 = foo10
self.foo11 = foo11