Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class A(object):
- def foo(self):
- print 'A.foo()'
- class B(object):
- def foo(self):
- print 'B.foo()'
- class C(A, B):
- def foo(self):
- print 'C.foo()'
- A.foo(self)
- B.foo(self)
- class FooBase(object):
- def foo(self): pass
- class A(FooBase):
- def foo(self):
- super(A, self).foo()
- print 'A.foo()'
- class B(FooBase):
- def foo(self):
- super(B, self).foo()
- print 'B.foo()'
- class C(A, B):
- def foo(self):
- super(C, self).foo()
- print 'C.foo()'
- >>> C.__mro__
- (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <type 'object'>)
- >>>
- >>> C.__mro__
- (<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <type 'object'>)
- >>>
- class A(object):
- def foo(self):
- print 'A.foo()'
- class B(object):
- def foo(self):
- print 'B.foo()'
- class C(A, B):
- def foo(self):
- super(C, self).foo()
- print 'C.foo()'
- A.foo(self)
- B.foo(self)
- c = C()
- c.foo()
- A.foo()
- C.foo()
- A.foo()
- B.foo()
- class A(object):
- def foo(self):
- print 'A.foo()'
- class B(object):
- def foo(self):
- print 'B.foo()'
- class C(A, B):
- def foo(self):
- print 'C.foo()'
- super(C, self).foo() # calls A.foo()
- super(A, self).foo() # calls B.foo()
- class FooBase(object):
- def foo(self):
- print 'FooBase.foo()'
- class A(FooBase):
- def foo(self):
- print 'A.foo() before super()'
- super(A, self).foo()
- print 'A.foo() after super()'
- class B(FooBase):
- def foo(self):
- print 'B.foo() before super()'
- super(B, self).foo()
- print 'B.foo() after super()'
- class C(A, B):
- def foo(self):
- print 'C.foo() before super()'
- super(C, self).foo()
- print 'C.foo() after super()'
- >>> c = C()
- >>> c.foo()
- C.foo() before super()
- A.foo() before super()
- B.foo() before super()
- FooBase.foo()
- B.foo() after super()
- A.foo() after super()
- C.foo() after super()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement