【发布时间】:2010-07-07 08:36:35
【问题描述】:
以下代码在 Python 3.x 中不起作用,但它曾经适用于旧式类:
class Extender:
def extension(self):
print("Some work...")
class Base:
pass
Base.__bases__ += (Extender,)
Base().extension()
问题很简单: 如何在 Python 3.x 中动态(在运行时)将超类添加到类中?
但我已经准备好答案将很难! )
【问题讨论】:
-
你的基地不再属于你了?答案会很难吗?
-
我认为这是不可能的,因为所有类都是 Python 3 中的新型类,如果
Base将object和Extender作为基类,则 MRO 将是模棱两可的.创建一个继承自Base和Extender的新类。Extender也可能是 ABC。
标签: python runtime python-3.x multiple-inheritance