Warum kann ich super
nicht verwenden, um eine Methode der Superklasse einer Klasse zu erhalten?Python: Warum kann ich `super` nicht in einer Klasse verwenden?
Beispiel:
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'
(Natürlich ist dies ein trivialer Fall, wo ich gerade A.my_method
tun könnte, aber ich brauchte diese für einen Fall von Diamant-Vererbung.)
Nach super
‚s Dokumentation, scheint es, als was ich will, sollte möglich sein. Dies ist super
‚s Dokumentation: (Hervorhebung von mir)
super()
-> gleiche wiesuper(__class__, <first argument>)
super(type)
-> ungebundenen Super Objekt
super(type, obj)
-> gebundensuper
Objekt; benötigtisinstance(obj, type)
super (typ, typ2) -> gebunden super objekt; erfordert issubclass (Typ2, Typ)
[nicht-relevante Beispiele geschwärzt]
ich meine Antwort gelöscht - ich den gleichen Fehler habe. Sehr seltsam, werde ein wenig mehr darauf schauen. –