[Python-de] Wie sieht Python fuer mich aus?
Stefan Schwarzer
sschwarzer at sschwarzer.net
Fr Jan 13 02:40:55 EST 2017
On 2017-01-09 17:33, Hermann Riemann wrote:
> Am 09.01.2017 um 14:31 schrieb Sven R. Kunze:
>>> »==« bedeutet »ist gleich«, und »!=« bedeutet »ist nicht
>>> gleich«.
>
>> Es gibt noch "is" und "is not" für Objekt-Identitätsvergleich.
>
> Pointer Vergleich bzw. Adressvergleich. (Adresse =id(variable))
Ein Fallstrick bei der Verwendung von `id` ist, dass
verschiedene Objekte aufgrund der Garbage Collection während
der Ausführung die gleiche Id bekommen können.
Mir fällt jetzt aber kein praktisches Beispiel ein, wo das
_bei einem direkten Objektvergleich_ auftreten würde. Bei
if id(objekt1) == id(objekt2):
...
dürften `objekt1` und `objekt2` immer Namen sein, die an ein
Objekt gebunden sind. Wenn man einen Objekt-Vergleich
möchte, würde man wohl kaum Ausdrücke verwenden, die ganz
oder teilweise "garbage-collected" werden könnten, nachdem
nur einer der `id`-Aufrufe erfolgt ist. Oder hat jemand von
euch schon Code gesehen, wo das relevant sein könnte?
Wenn man `is` verwendet, muss man sich aber nicht mal
Gedanken drüber machen. :-) Und `is` ist das normale Idiom
für den Objekt-Vergleich.
Viele Grüße
Stefan
Mehr Informationen über die Mailingliste python-de