Auch wenn Sie es nicht brauchen zu programmieren, dient object
einen Zweck: es ist die gemeinsame Klasse ist, von dem alle anderen Objekte abgeleitet werden. Es ist die letzte Klasse, die von der mro
(method resolution order) Methode aufgelistet wird. Wir brauchen einen Namen und ein Objekt für dieses Konzept, und dient diesem Zweck.
Eine andere Verwendung für object
ist sentinels erstellen.
sentinel = object()
Dies wird oft in multithreaded Programmierung - durch Warteschlangen geführt - zu signal a termination event. Wir möchten möglicherweise nicht None
oder einen anderen Wert senden, da der Warteschlangen-Handler diese Werte möglicherweise als zu verarbeitende Argumente interpretieren muss. Wir brauchen einen einzigartigen Wert, den kein anderer Teil des Programms erzeugen kann.
Das Erstellen eines Sentinels auf diese Weise liefert ein solches eindeutiges Objekt, das sicher kein normaler Warteschlangenwert ist und daher als Signal für ein bestimmtes Ereignis getestet und verwendet werden kann. Es gibt andere Möglichkeiten, z. B. das Erstellen einer Klasse oder Klasseninstanz oder einer Funktion, aber alle diese Alternativen sind größer, ressourcenintensiver und nicht so markig wie object()
.
Es ist nicht als eine Funktion verwendet werden; es soll eine Basisklasse sein. – refi64
In Python 3? Warum? Was würde ich davon gewinnen? Klassen erben diese Methoden automatisch, nicht? – Aerovistae
Ich finde es urkomisch, wie in der Dokumentation Verknüpfung, die Sie geben, hat es einige Hyperlink-Text, der rekursiv auf sich selbst zeigt. – Shashank