Python: Почему я не могу использовать `super` в классе?

Почему я не могу использовать 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, тип)

[нерелевантные примеры отредактированы]

7
задан RobM 31 March 2011 в 12:25
поделиться