You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
887 B
44 lines
887 B
# 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)
|
|
|