Suppose I have the following class structure:
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.
An example case to provide some context is that Mixin1
is an authentication handler and Mixin2
is a login handler. The functionality in the parent classes will populate instance variables (say, error messages).
What would be the most Pythonic approach to calling the parent's get_data
methods?
One approach to get this kind of information might be something like this:
original_class = self.__class__.__base__
parents = [base for base in original_class.__bases__]
for parent in parents:
parent.get_data()
I don't see this as an unreasonable approach but if I have to start crawling into the meta I begin to wonder if there is a more Pythonic approach.
Any suggestions? Is it possible to use super()
for this?