45 lines
887 B
Python
45 lines
887 B
Python
|
# 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)
|