Damien George
7 years ago
1 changed files with 44 additions and 0 deletions
@ -0,0 +1,44 @@ |
|||
# test subclassing a native type and overriding __init__ |
|||
|
|||
# overriding list.__init__() |
|||
class L(list): |
|||
def __init__(self, a, b): |
|||
super().__init__([a, b]) |
|||
print(L(2, 3)) |
|||
|
|||
# inherits implicitly from object |
|||
class A: |
|||
def __init__(self): |
|||
print("A.__init__") |
|||
super().__init__() |
|||
A() |
|||
|
|||
# inherits explicitly from object |
|||
class B(object): |
|||
def __init__(self): |
|||
print("B.__init__") |
|||
super().__init__() |
|||
B() |
|||
|
|||
# multiple inheritance with object explicitly mentioned |
|||
class C: |
|||
pass |
|||
class D(C, object): |
|||
def __init__(self): |
|||
print('D.__init__') |
|||
super().__init__() |
|||
def reinit(self): |
|||
print('D.foo') |
|||
super().__init__() |
|||
a = D() |
|||
a.__init__() |
|||
a.reinit() |
|||
|
|||
# call __init__() after object is already init'd |
|||
class L(list): |
|||
def reinit(self): |
|||
super().__init__(range(2)) |
|||
a = L(range(5)) |
|||
print(a) |
|||
a.reinit() |
|||
print(a) |
Loading…
Reference in new issue