Я пытаюсь понять, когда и как правильно использовать super() в Python (либо 2.7.x, либо 3.x)
on >>> help(super)
интерпретатор говорит мне, как его называть:
class super(object)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound super object; requires issubclass(type2, type)
Я понимаю, что в Python3.x теперь можно juse использовать super() в определении класса, но я не понимаю, почему super(obj)
невозможно. Или super(self)
в определении класса.
Я знаю, что для этого должна быть причина, но я не могу ее найти. Для меня эти строки эквивалентны super(obj.__class__, obj)
или super(self.__class__, self)
, и они будут работать правильно?
Я бы подумал, что просто набрав super(obj)
будет хорошим ярлыком даже в Python 3.x.