Python's 'is' operator ...

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
vetterh
User
Beiträge: 1
Registriert: Donnerstag 15. November 2012, 21:58

Code: Alles auswählen

class C(object):
    def m(self):
        pass

iC = C()

id(iC.m)

id(C.m)

id(iC.m) == id(C.m)

iC.m is C.m
Das Ergebnis der letzten Zeile ist 'False', obwohl die Objekte 'iC.m' (bound method 'm' of class 'C') und 'C.m' (unbound method 'm' of class 'C') den gleichen ID-Wert haben ...

Überprüft denn der Python-Operator 'is' nicht nur die ID-Werte um festzustellen, ob zwei Referenzen auf das gleiche Objekt zeigen?
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Hallo und willkommen im Forum!

Mal so zum Nachdenken. Damit kommst du sicher selber drauf:

Code: Alles auswählen

>>> class Spam(object):
...     def eggs(self): pass
... 
>>> spam = Spam()
>>> id(spam.eggs)
14718928
>>> id(Spam.eggs)
14718928
>>> a = spam.eggs
>>> b = Spam.eggs
>>> id(a)
14718928
>>> id(b)
140055128950336
Das Leben ist wie ein Tennisball.
Antworten