In einer älteren Python-Version kann eine Klasse, wenn Sie sie in Python erstellen, von einem Objekt erben. Soweit ich weiß, handelt es sich um ein spezielles integriertes Python-Element, mit dem Ihr Objekt ein Objekt neuen Stils sein kann.
Was ist mit neueren Versionen (> 3.0 und 2.6)? Ich habe über das Klassenobjekt gegoogelt, aber ich bekomme so viele Ergebnisse (aus offensichtlichen Gründen). Irgendein Hinweis?
Danken!
python
python-3.x
Thomas
quelle
quelle
Antworten:
Sie müssen nicht erben
object
, um in Python 3 einen neuen Stil zu haben. Alle Klassen haben einen neuen Stil.quelle
object
unabhängig davon erben, ob sie(object)
in Python 3.1Mir ist klar, dass dies eine alte Frage ist, aber es ist erwähnenswert, dass diese beiden Dinge selbst in Python 3 nicht ganz dasselbe sind.
Wenn Sie explizit von erben
object
, erben Sie tatsächlich von,builtins.object
unabhängig davon, worauf dies zu diesem Zeitpunkt hinweist.Daher könnte ich ein (sehr verrücktes) Modul haben, das aus irgendeinem Grund das Objekt überschreibt. Wir nennen dieses erste Modul "newobj.py":
Dann in einer anderen Datei ("klasses.py"):
Dann in einer dritten Datei (die wir tatsächlich ausführen können):
Sie sehen also, dass wir in dem Fall, in dem es explizit vom Objekt erbt, ein anderes Verhalten erhalten als wenn Sie die implizite Vererbung zulassen.
quelle