Przy użyciu Pythona super()
zrobić metoda łańcuchowym, trzeba wyraźnie określić swoją klasę, na przykład:Dlaczego muszę określić własną klasę podczas używania super() i czy istnieje sposób na obejście tego?
class MyDecorator(Decorator):
def decorate(self):
super(MyDecorator, self).decorate()
muszę podać nazwę mojej klasie MyDecorator
jako argument do super()
. To nie jest SUCHA. Kiedy zmieniam nazwę mojej klasy, będę musiał zmienić jej nazwę dwukrotnie. Dlaczego jest to realizowane w ten sposób? I czy istnieje sposób, aby wymazać z konieczności napisania nazwy klasy dwukrotnie (lub więcej)?
Link do aktualnej wersji PEP: http://www.python.org/dev/peps/pep-3135/ – sth
'super()' bez argumentów nie * nie * działa na Pythonie 2.6.1 – jfs
Wydaje się, że PEP 367 został "zastąpiony". Nie widzę dowodów na to, że dodano go do 2.7. Myślę, że jest to tylko funkcja 3.x. – Vultaire