有条件地导入 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
按照 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