Du vermengst immer das Objekt (das für sich keinen Namen als Eigenschaft hat oder braucht) und den/die Namen, an die es gebunden ist.sape hat geschrieben:Puh, nun wird es ansträngend:birkenfeld hat geschrieben: Eine Instanz ist ein Objekt. Der Name nicht. Deswegen gibt es ja z.b. id().Was ist x? Ist x die Instanz von Foo? Wenn ja dann ist x ein Objekt! x ist aber auch der Name der Instanz von Foo == x ist die Instanz von Foo.Code: Alles auswählen
class Foo: pass x = Foo()
Wenn du nun "x" sagst, meinst du das Objekt und sagst Namen, daher kommt dein Problem.
Das schließt sich nicht aus.Funktionen sind also Objekte? Eine Funktion hat doch aber ein Namen.
Hier ist es eben wichtig, zwischen Namen und Objekt zu trennen. Die Instanz von Foo ist ein Objekt. Sie kann z.B. an den Namen x, aber auch an den Namen y oder THE_ANSWER_TO_LIFE_UNIVERSE_AND_EVERYTHING gebunden werden, oder zum Beispiel auch an eine Liste angefügt werden.Ne Moment, Du sagtest ja das Instanzen auch Objekte sind. Dan ist der Name x auch ein Objekt das an das Objekt Foo gebunden ist, weil x die Instanz von Foo ist?
Der Name "x" ist eben kein Objekt und auch nicht mit der Instanz identisch. Die Instanz kann weiter existieren, wenn der Name schon längst nicht mehr gültig ist.
Das sollte sich ja inzwischen aufgeklärt haben.Merkt keiner den Widerspruch, bzw. wie kleinkariert das eigentlich ist?
Ich möchte auch erklären warumd as kleinkariert ist.
Du sagst das Instanzen Objekte sind. Du sagt aber das Namen kein Objekte sind. Man kann aber nur über einen Namen eine Instanz erzeugen. So abld ich ``x = Foo()`` schreibe ist x eine Instanz und somit ein Objekt. Aber sobald ich sage das x der Name ist der an Foo gebunden ist, ist es kein Objekt mehr sondern nur ein Namen?
Entschuldige, wir sind hier nicht in der Mathematik. Man kann nichts definieren. "Per definitionem" ist also weder in Ruby noch in Python alles ein Objekt.Per Definition ist alles in Ruby ein Objekt. Man kann wirklcih alles überladen.Wo und wie sind in Ruby Operatoren Objekte?