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