Sobes.tech
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.