Created
February 25, 2015 18:13
-
-
Save kaotika/fe9137c884b611b0d556 to your computer and use it in GitHub Desktop.
Multiple Inheritance
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#class KwargsInit(object): | |
#def __init__(self, *args, **kwargs): | |
## Don't call super() here, it breaks things in python2.6 | |
#pass | |
#class Mixin1(KwargsInit): | |
#def __init__(self, keyword1=None, **kwargs): | |
#super(Mixin1, self).__init__(**kwargs) | |
#self.keyword1 = keyword1 | |
#class Mixin2(KwargsInit): | |
#def __init__(self, keyword2=None, **kwargs): | |
#super(Mixin2, self).__init__(**kwargs) | |
#self.keyword2 = keyword2 | |
#class Mixed(Mixin1, Mixin2): | |
#def __init__(self, keyword1=None, keyword2=None, **kwargs): | |
#super(Mixed, self).__init__(keyword1=keyword1, keyword2=keyword2, | |
#**kwargs) | |
class Mixin1(object): | |
def __init__(self, keyword1=None): | |
self.keyword1 = keyword1 | |
def doStuff(self): | |
print "Mixin1 stuff" | |
class Mixin2(object): | |
def __init__(self, keyword2=None): | |
self.keyword2 = keyword2 | |
def doStuff(self): | |
print "Mixin2 stuff" | |
class Mixed(Mixin1, Mixin2): | |
def __init__(self, keyword1=None, keyword2=None): | |
Mixin1.__init__(self, keyword1=keyword1) | |
Mixin2.__init__(self, keyword2=keyword2) | |
def doStuff(self): | |
Mixin1.doStuff(self) | |
Mixin2.doStuff(self) | |
print "mixed stuff" | |
m = Mixed("hallo", "Peter") | |
print m.keyword1, m.keyword2 | |
m.doStuff() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment