Seite 1 von 1

Python's 'is' operator ...

Verfasst: Donnerstag 15. November 2012, 22:04
von vetterh

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?

Re: Python's 'is' operator ...

Verfasst: Donnerstag 15. November 2012, 22:45
von EyDu
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