Ich versuche, wann und zu verstehen, wie Super() zu verwenden, in Python korrekt (entweder 2.7.x oder 3.x)Python super() Argumente: warum nicht super (obj)?
auf >>> help(super)
der Dolmetscher sagt mir, wie es nennen:
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)
Ich verstehe, dass es in Python3.x jetzt möglich ist, super() innerhalb einer Klassendefinition zu verwenden, aber ich verstehe nicht, warum super(obj)
nicht möglich ist. Oder super(self)
innerhalb einer Klassendefinition.
Ich weiß, dass es einen Grund dafür geben muss, aber ich kann es nicht finden. Für mich entsprechen diese Zeilen super(obj.__class__, obj)
oder super(self.__class__, self)
und diese würden richtig funktionieren?
Ich würde denken, dass nur Eingabe super(obj)
wäre eine nette Abkürzung sogar in Python 3.x.
Ich würde sagen, dass es Mehrdeutigkeit verursachen würde, wenn Sie "Super" auf einer Metaklasse aufrufen, aber dann erkannte ich, dass diese Zweideutigkeit auch mit der 2-Argument-Form existiert. Jetzt bin ich mir nicht sicher. – user2357112