Sobes.tech
Middle

Aký je rozdiel medzi is a == v Pythone?

sobes.tech AI

Odpoveď od AI

V Pythone kontroluje operátor is, či dve premenne ukazujú na ten istý objekt v pamäti (t.j. porovnáva identitu objektov). Operátor == kontroluje rovnosť hodnôt objektov, čo znamená, že volá metódu __eq__ a porovnáva obsah alebo logiku rovnosti.

Príklad:

a = [1, 2, 3]
b = a
c = [1, 2, 3]

print(a is b)  # True, pretože b odkazuje na ten istý objekt
print(a == b)  # True, hodnoty sú rovnaké

print(a is c)  # False, rôzne objekty
print(a == c)  # True, zoznamy majú rovnaké hodnoty

Takže, is je kontrola identity (jeden objekt), a == je kontrola rovnosti podľa obsahu.