python - 如何改 rebase 类

标签 python dynamic class

我有一个派生自基类的类,并且有很多行代码

例如

class AutoComplete(TextCtrl):
    .....

我想做的是改 rebase 类,让它像这样工作

class AutoComplete(PriceCtrl):
    .....

我已经使用了这两种类型的自动完成,并且可能想添加更多基类,那么我该如何动态地进行呢?

组合本来是一种解决方案,但我不想修改太多代码。

有什么简单的解决方案吗?

最佳答案

你可以为你的类创建一个工厂:

def completefactory(baseclass):
    class AutoComplete(baseclass):
        pass
    return AutoComplete

然后使用:

TextAutoComplete = completefactory(TextCtrl)
PriceAutoComplete = completefactory(PriceCtrl)

另一方面,根据您想要实现的目标和您的类的外观,AutoComplete 可能是一个混入,因此您可以定义 TextAutoComplete :

class TextAutocomplete(TextCtrl, AutoComplete):
    pass

关于python - 如何改 rebase 类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1334222/

相关文章:

Java new 关键字与静态内部类

c++ - 初始化类中的模板对象 (c++)

python - django 完整性错误,我知道为什么,但不知道如何解决

python - Tensorflow - 保存模型

python - 如何使用 bokeh HexTile 在 x,y 图表上倾斜六边形图 block

php - 根据用户输入更改 div 的内容?

linq - 动态 Linq GroupBy 选择无法正常工作

jsf - 以编程方式实例化 ValueExpression

python:如何将实例的方法调用转发到它的属性

javascript - Javascript 中是否需要类?它们对创建对象有什么影响?