Wie die anderen Personen in diesem Beitrag beantworten die Frage im Detail den Unterschied zwischen ==
y is
für den Vergleich von Objekten oder Variablen, würde ich hervorheben. hauptsächlich der Vergleich zwischen is
y ==
für Saiten die zu unterschiedlichen Ergebnissen führen können, und ich möchte die Programmierer auffordern, sie sorgfältig zu verwenden.
Für den Vergleich von Zeichenketten sollten Sie die ==
anstelle von is
:
str = 'hello'
if (str is 'hello'):
print ('str is hello')
if (str == 'hello'):
print ('str == hello')
Aus:
str is hello
str == hello
Aber im folgenden Beispiel ==
y is
werden unterschiedliche Ergebnisse erzielt:
str2 = 'hello sam'
if (str2 is 'hello sam'):
print ('str2 is hello sam')
if (str2 == 'hello sam'):
print ('str2 == hello sam')
Aus:
str2 == hello sam
Schlussfolgerung und Analyse:
Verwenden Sie is
sorgfältig, um zwischen Zeichenketten zu vergleichen. Da is
für den Vergleich von Objekten und da in Python 3+ jede Variable wie z.B. String als Objekt interpretiert wird, wollen wir sehen, was in den obigen Absätzen passiert ist.
In Python gibt es [id
](https://www.geeksforgeeks.org/id-function-python/#:%7E:text=id()%20is%20an%20inbuilt,the%20same%20id()%20value.) Funktion, die eine eindeutige Konstante eines Objekts während seiner Lebensdauer anzeigt. Diese ID wird im Backend des Python-Interpreters verwendet, um zwei Objekte mit is
Stichwort.
str = 'hello'
id('hello')
> 140039832615152
id(str)
> 140039832615152
Aber
str2 = 'hello sam'
id('hello sam')
> 140039832615536
id(str2)
> 140039832615792