Seite 1 von 1
Frage zur OOP-Terminologie
Verfasst: Dienstag 29. April 2008, 20:34
von numerix
Was ist die korrekte Bezeichnung für das, was rechts des Gleichheitszeichens steht?
Sagt man da "Klassenaufruf"?
"Klasse" allein dürfte nicht zutreffen, "Konstruktor" ist ja auch nicht die richtige Vokabel in Python, wenn ich es richtig verstanden habe.
Verfasst: Dienstag 29. April 2008, 21:02
von birkenfeld
Das ist lediglich ein Call / Aufruf.
Python unterscheidet nicht zwischen Klassen, Funktionen und sonstigen Callables. Bei anderen Sprachen würde man wohl von Instanzierung sprechen.
Verfasst: Dienstag 29. April 2008, 21:14
von BlackJack
Ich würde auch sagen da "wird die Klasse aufgerufen".
Verfasst: Dienstag 29. April 2008, 21:18
von numerix
Danke, hat geholfen!
Verfasst: Mittwoch 30. April 2008, 09:52
von AlArenal
BlackJack hat geschrieben:Ich würde auch sagen da "wird die Klasse aufgerufen".
Eigentlich wird eine Instanz der Klasse erzeugt und zugewiesen.
Verfasst: Mittwoch 30. April 2008, 10:04
von sma
Es wird ein Exemplar einer Klasse erzeugt ;)
Da wir alle aber nur aufgrund von Konventionen vermuten, dass die globale Variable "MyClass" ein Klassenobjekt enthält, wäre es IMHO ausreichend von einem "Aufruf" zu spechen (englisch "call" oder auch gerne "application" genannt).
Stefan
Verfasst: Mittwoch 30. April 2008, 10:28
von BlackJack
@AlArenal: Selbst wenn an den Namen `MyClass` den Konventionen folgend ein Objekt/Exemplar vom Typ `classobj` oder `type` gebunden sein sollte, kann es immer noch sein, dass dort `__new__()` implementiert ist. Da muss also nicht zwangsläufig ein neues Exemplar erzeugt werden.
Wirklich sicher kann man nur sagen, das auf der rechten Seite ein Name steht, der an ein Objekt gebunden ist, das aufgerufen wird.
Verfasst: Mittwoch 30. April 2008, 10:31
von AlArenal
Danke BlackJack, ich werds mir in einer ruhigen Stunde mal anlesen. Derzeit bin ich noch etwas Java-verseucht

Verfasst: Mittwoch 30. April 2008, 14:11
von numerix
Was hier passiert, war mir schon klar, und ob man es Instanz oder Exemplar oder Objekt nennt - dazu gibt es schon mindestens einen Thread - wollte ich auch nicht (erneut) in die Diskussion werfen.
Mir ging es nur um eine richtige Benennung der rechten Seite und da scheint mir "Klassenaufruf" (ja, MyClass ist ein Klassenobjekt!) doch das Treffendste zu sein.
Verfasst: Mittwoch 30. April 2008, 14:16
von lunar
BlackJack hat geschrieben:@AlArenal: Selbst wenn an den Namen `MyClass` den Konventionen folgend ein Objekt/Exemplar vom Typ `classobj` oder `type` gebunden sein sollte, kann es immer noch sein, dass dort `__new__()` implementiert ist. Da muss also nicht zwangsläufig ein neues Exemplar erzeugt werden.
Wirklich sicher kann man nur sagen, das auf der rechten Seite ein Name steht, der an ein Objekt gebunden ist, das aufgerufen wird.
Natürlich muss man dir hier recht geben (was anderes bleibt ja nicht übrig, kürzlich habe ich ja gelernt, dass du per definitionem keine Fehler machst

).
Dennoch würde ich den Begriff Instanzierung an dieser Stelle nicht als "falsch" ansehen. Sicher, Java, C# und C++ sind nicht das Maß der Welt, nur ist deren Auffassung von OOP relativ weit verbreitet, insofern schadet es nicht, auch die Termini dieser objektorientierten Welt zu kennen, und sei es nur, um den Java-Jüngern im Gespräch nicht völlig den Kopf kirre zu machen

Verfasst: Mittwoch 30. April 2008, 20:39
von BlackJack
Das macht aber soooon Spaaasss
