Anu*_*yal 3 python class dynamic
我有一个派生自基类的类,并且有许多行代码
例如
class AutoComplete(TextCtrl):
.....
Run Code Online (Sandbox Code Playgroud)
我想要做的是更改基类,以便它的工作方式
class AutoComplete(PriceCtrl):
.....
Run Code Online (Sandbox Code Playgroud)
我已经使用了两种类型的AutoCompletes,可能想添加更多的基类,那么我该如何动态地做呢?
组合将是一个解决方案,但我不想修改代码很多.
有什么简单的解决
您可以为您的班级设立工厂:
def completefactory(baseclass):
class AutoComplete(baseclass):
pass
return AutoComplete
Run Code Online (Sandbox Code Playgroud)
然后使用:
TextAutoComplete = completefactory(TextCtrl)
PriceAutoComplete = completefactory(PriceCtrl)
Run Code Online (Sandbox Code Playgroud)
另一方面,取决于你想要实现什么以及你的类看起来如何,也许AutoComplete是一个mixin,所以你要定义TextAutoComplete:
class TextAutocomplete(TextCtrl, AutoComplete):
pass
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2848 次 |
| 最近记录: |