Advertisement
Guest User

Untitled

a guest
Apr 1st, 2015
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. class A(object):
  2. def foo(self):
  3. print 'A.foo()'
  4.  
  5. class B(object):
  6. def foo(self):
  7. print 'B.foo()'
  8.  
  9. class C(A, B):
  10. def foo(self):
  11. print 'C.foo()'
  12. A.foo(self)
  13. B.foo(self)
  14.  
  15. class FooBase(object):
  16. def foo(self): pass
  17.  
  18. class A(FooBase):
  19. def foo(self):
  20. super(A, self).foo()
  21. print 'A.foo()'
  22.  
  23. class B(FooBase):
  24. def foo(self):
  25. super(B, self).foo()
  26. print 'B.foo()'
  27.  
  28. class C(A, B):
  29. def foo(self):
  30. super(C, self).foo()
  31. print 'C.foo()'
  32.  
  33. >>> C.__mro__
  34. (<class '__main__.C'>, <class '__main__.A'>, <class '__main__.B'>, <type 'object'>)
  35. >>>
  36.  
  37. >>> C.__mro__
  38. (<class '__main__.C'>, <class '__main__.B'>, <class '__main__.A'>, <type 'object'>)
  39. >>>
  40.  
  41. class A(object):
  42. def foo(self):
  43. print 'A.foo()'
  44.  
  45. class B(object):
  46. def foo(self):
  47. print 'B.foo()'
  48.  
  49. class C(A, B):
  50. def foo(self):
  51. super(C, self).foo()
  52. print 'C.foo()'
  53. A.foo(self)
  54. B.foo(self)
  55.  
  56.  
  57. c = C()
  58. c.foo()
  59.  
  60. A.foo()
  61. C.foo()
  62. A.foo()
  63. B.foo()
  64.  
  65. class A(object):
  66. def foo(self):
  67. print 'A.foo()'
  68.  
  69. class B(object):
  70. def foo(self):
  71. print 'B.foo()'
  72.  
  73. class C(A, B):
  74. def foo(self):
  75. print 'C.foo()'
  76. super(C, self).foo() # calls A.foo()
  77. super(A, self).foo() # calls B.foo()
  78.  
  79. class FooBase(object):
  80. def foo(self):
  81. print 'FooBase.foo()'
  82.  
  83. class A(FooBase):
  84. def foo(self):
  85. print 'A.foo() before super()'
  86. super(A, self).foo()
  87. print 'A.foo() after super()'
  88.  
  89. class B(FooBase):
  90. def foo(self):
  91. print 'B.foo() before super()'
  92. super(B, self).foo()
  93. print 'B.foo() after super()'
  94.  
  95. class C(A, B):
  96. def foo(self):
  97. print 'C.foo() before super()'
  98. super(C, self).foo()
  99. print 'C.foo() after super()'
  100.  
  101. >>> c = C()
  102. >>> c.foo()
  103. C.foo() before super()
  104. A.foo() before super()
  105. B.foo() before super()
  106. FooBase.foo()
  107. B.foo() after super()
  108. A.foo() after super()
  109. C.foo() after super()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement