我有一种奇怪的感觉,这是一个简单的问题。
我希望能够“别名”一个类类型,这样我就可以在包级别换出实现。我不希望在我的代码中分散X import X as bah
......
阿卡。我该怎么做如下的事情:
class BaseClass(object):
def __init__(self): pass
def mymthod(self): pass
def mymthod1(self): pass
def mymthod2(self): pass
class Implementation(BaseClass):
def __init__(self):
BaseClass.__init__()
单独包裹......
#I dont want thse scattered through out modules,
#i want them in one place where i can change one and change implementations
#I tried putting it in the package init but no luck
import Implementation as BaseClassProxy
class Client(BaseClassImpl):
def __init__(self):
BaseClassImpl.__init__(self)
答案 0 :(得分:5)
在任何文件中(最适合您的文件,可能取决于Implementation
的定义):
BaseClassProxy = Implementation
由于类是Python中的第一类对象,因此几乎可以将它们绑定到任何变量并以相同的方式使用它们。在这种情况下,您可以为该类创建别名。
答案 1 :(得分:2)
只需添加类似
的内容BaseClassProxy = Implementation
在模块中,然后执行:
from module import BaseClassProxy