假设我有以下类结构:
class Mixin1(Base1):
def get_data(self):
# Gather some data in some way
class Mixin2(Base2):
def get_data(self):
# Gather some data in another way
class MyClass(Mixin1, Mixin2):
def get_data(self):
# Gather some data in yet another way. Then...
# Get Mixin2's version of get_data. Then...
# Get Mixin1's version of get_data.
提供一些上下文的示例案例是Mixin1
是身份验证处理程序,Mixin2
是登录处理程序。父类中的功能将填充实例变量(例如,错误消息)。
调用父级get_data
方法的最Pythonic方法是什么?
获取此类信息的一种方法可能是这样的:
original_class = self.__class__.__base__
parents = [base for base in original_class.__bases__]
for parent in parents:
parent.get_data()
我不认为这是一种不合理的方法,但如果我必须开始爬进元数据,我开始怀疑是否有更多的Pythonic方法。
有什么建议吗?可以使用super()
吗?