Почему я не могу использовать super
, чтобы получить метод суперкласса класса?
Пример:
Python 3.1.3
>>> class A(object):
... def my_method(self): pass
>>> class B(A):
... def my_method(self): pass
>>> super(B).my_method
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
super(B).my_method
AttributeError: 'super' object has no attribute 'my_method'
(Конечно, это тривиальный случай где я мог бы просто использовать A.my_method
, но мне это нужно для случая наследования алмаза.)
Согласно документации super
, это похоже на то, что я хочу должно быть возможно. Это документация super
: (выделено мной)
super ()
-> то же, что иsuper (__ class__, <первый аргумент>)
super (тип)
-> несвязанный суперобъект
super (type, obj)
-> связанныйsuper
объект; требуетisinstance (obj, type)
super (type, type2) -> bound super объект; требуется issubclass (type2, тип)
[нерелевантные примеры отредактированы]