在 python 3 中,我可以使用列表扩展来动态继承多个父类(super class):
class Super1(object):
x = 1
class Super2(object):
y = 1
classes = [Super1, Super2]
class B(*classes):
pass
这让我可以在运行时决定将哪些混合类添加到父类(super class)列表中。
不幸的是,父类(super class)列表的*
扩展是python2中的语法错误。是否有一种普遍接受的方式在运行时选择父类(super class)列表
最佳答案
@blhsing 提供的答案是正确的,但我实际上想要的是 2/3 兼容的东西。我接受了直接使用 type
的提示,并做了更像这样的事情:
class Super1(object):
x = 1
class Super2(object):
y = 1
classes = [Super1, Super2]
B = type('B', tuple(classes), {})
这在 2/3 中同样有效
关于Python 2 动态多重继承,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55752898/