Python全局/包别名实现类

问题描述

| 我有一种奇怪的感觉,这是一个简单的问题。 我希望能够“别名”一个类类型,以便可以在程序包级别交换实现。我不想让X金额的
import X as bah
分散在我的整个代码中... ka我该如何执行以下操作:
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)
    

解决方法

在任何文件中(最合适的地方取决于您,可能定义了
Implementation
的位置):
BaseClassProxy = Implementation
由于类是Python中的一流对象,因此您几乎可以将它们绑定到任何变量,并以相同的方式使用它们。在这种情况下,您可以为该类创建别名。     ,只是把像
BaseClassProxy = Implementation
在模块中,然后执行以下操作:
from module import BaseClassProxy
    

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...