Middle
Mi a különbség az is és == között Pythonban?
sobes.tech MI
Válasz az MI-től
Pythonban az is operátor ellenőrzi, hogy két változó ugyanarra az objektumra mutat-e a memóriában (azaz összehasonlítja az objektumok identitását). A == operátor az objektumok értékegyezőségét ellenőrzi, azaz meghívja a __eq__ metódust, és összehasonlítja a tartalmat vagy az egyenlőség logikáját.
Példa:
a = [1, 2, 3]
b = a
c = [1, 2, 3]
print(a is b) # Igaz, mert b ugyanarra az objektumra mutat
print(a == b) # Igaz, az értékek megegyeznek
print(a is c) # Hamis, külön objektumok
print(a == c) # Igaz, a listák értékei egyeznek
Tehát az is az identitás ellenőrzése (egy objektum), míg a == tartalom szerinti egyenlőség ellenőrzése.