У меня проблема с пониманием поведения функции super () в классе abc.ABCMeta в python3.6.
class ParentClass():
def test():
return 1
@six.add_metaclass(ABCMeta)
class ChildClass(ParentClass):
def test(self):
test_ = super().test
test_ = 2
return test_
a = ChildClass()
a.test()
Код не выполнен с 'TypeError: super(type, obj): obj must be an instance or subtype of type'
.
Когда я использовал super(ChildClass, self).test
, он работал правильно! Печать из функции тестирования ChildClass:
print(__class__)
print(type(__class__))
print(ChildClass)
print(type(ChildClass))
Я получаюследующий вывод:
<class '__main__.ChildClass'>
<class 'type'>
<class '__main__.ChildClass'>
<class 'abc.ABCMeta'>
Я чувствую, что причинав инициализации объекта, но я не могу понять эту информацию с моими текущими навыками в ООП и ООП Python.