Sobes.tech
Junior — Middle

Kas saaksite selgitada, milles seisneb erinevus võrdlusoperaatori == ja identiteedoperaatori is vahel Pythonis?

sobes.tech AI

Vastus AI-lt

Pythonis kontrollib operaator == objektide väärtuste võrdlust, see tähendab, et see võrdleb objektide sisu või olekut. Näiteks kaks erinevat stringi sama tekstiga on võrdsed == abil.

Operaator is kontrollib objektide identiteeti — näitab, kas mõlemad muutujad viitavad samale objektile mälus.

Näide:

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

print(a == c)  # Tõene, sest nimekirjad sisaldavad samu elemente
print(a is c)  # Väär, erinevad objektid
print(a is b)  # Tõene, mõlemad muutujad viitavad samale objektile

Seega, == vastutab loogilise võrdluse eest, ja is füüsilise objekti identiteedi eest.