tests/basics: Add test for overriding a native base-class's init method.
This commit is contained in:
parent
d32d22dfd7
commit
fd0b0db873
44
tests/basics/subclass_native_init.py
Normal file
44
tests/basics/subclass_native_init.py
Normal file
@ -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
Block a user