Я пытаюсь изучить функцию super() в Python.
Я думал, что понял это, пока не подошел к этому примеру (2.6) и не застрял.
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test.py", line 9, in do_something
do_something = classmethod(do_something)
TypeError: unbound method do_something() must be called with B instance as first argument (got nothing instead)
>>>
Это было не то, что я ожидал, когда прочитал эту строку прямо перед примером:
Если мы используем метод класса, у нас нет экземпляра для вызова super. К счастью для нас, super работает даже с типом в качестве второго аргумента. --- Тип может быть передан напрямую в super, как показано ниже.
Это именно то, что говорит мне Python, невозможно, говоря, что do_something() должен вызываться с экземпляром B.