2011-01-08 2 views
3

In Python, warum wird empfohlen, jede Klasse zu erben, die wir aus der Klasse object machen, warum nicht direkt als Basisklasse ?? Eine wichtige Sache, die ich bemerkte, ist, dass die Deklaration __slots__ nicht funktioniert, wenn ich meine Klasse als eine Basisklasse (stattdessen als eine Unterklasse der Klasse object). Welche anderen Vorteile/Nachteile habe ich, indem ich meine Klasse von der Klasse object erben?Warum ist es eine gute Übung, eine Klasse, die wir aus der Klasse "Objekt" machen, zu erben?

+0

Dies ist kein Duplikat, aber bitte beachten Sie http://StackOverflow.com/Questions/54867/old-style-and-new-style-classes-in-python. –

+0

möglich Duplikat von [Python-Klasse erbt Objekt] (http://stackoverflow.com/questions/4015417/python-class-inherits-object) – hop

+0

Sie können dies leicht finden, indem Sie nach "Python erben von Objekt" suchen – hop

Antwort

6

In Python2, die Sie von Objekt, um erben müssen "new-style" class zu erstellen. Dinge wie Deskriptoren, super und __slots__ funktionieren nicht korrekt mit "Old-Style" -Klassen, aber Old-Style-Klassen blieben für die Abwärtskompatibilität.

In Python3 sind alle Klassen Klassen im neuen Stil. Daher ist das Erben von object nicht mehr erforderlich.

Verwandte Themen