Ich versuche, etwas grundlegendes Python-Objektdesign zu lernen. Eine Sache, die ich bemerkte, ist, dass Python nicht erfordert, dass Sie alle Datenmitglieder auflisten, bevor Sie sie innerhalb der Klasse verwenden können. Stattdessen habe ich festgestellt, dass Sie in der Lage sind, neue Datenelemente für verschiedene Methodenaufrufe in einer Klasse einzuführen.Können die gleichen Python-Objekte in der Größe variieren, da es keine formale Initialisierung gibt?
Mit Bezug auf den folgenden Code beachten Sie, wie ich den Konstruktor verwenden, um ein self.hello_world
Mitglied zu deklarieren. Da der Konstruktor für jede Instanz dieser Klasse aufgerufen wird, bin ich sicher, dass jedes Objekt einen hello_world
Member enthält.
Beachten Sie jedoch, wie ich ein self.dog
Datenelement NUR erstellen, wenn ich die printTest
Methode aufrufen. Dieses Datenelement würde nicht existieren, wenn ich diese Methode nicht aufrufen würde.
Also meine Frage, im Gegensatz zu der Programmiersprache C++
, in der alle Objekte eine bestimmte Objektgröße haben müssen, können Python-Objekte instanziiert aus der gleichen Klasse in der Größe aufgrund, was ich darauf hingewiesen?
Vielen Dank!
# Class test
class TestClass:
def __init__(self):
self.hello_world = 49
def printTest(self):
print("Trying to create new data member /n")
self.dog = "Biscuit"
Ummmmmmmm ja ... –
Ich bin sicher, ja, da Sie beliebig viele Instanzattribute definieren können. Ich weiß jedoch nicht, ob sie als neue Werte oder nur als Zeiger auf Werte gespeichert sind. Es hängt also wirklich davon ab, was Sie davon halten, wenn Sie sagen, Objektgröße ... – Cosinux
@RobertMoskal In Bezug auf Best Practice, ist es empfehlenswert, alle Daten Mitglied in der Funktion __init__ für eine bessere Lesbarkeit enthalten? – Izzo