Sobes.tech
Middle

Ի՞նչ է տարբերությունը is և ==-ի միջև Python-ում։

sobes.tech AI

Պատասխան AI-ից

Python-ում օպերատոր is-ը ստուգում է, արդյոք երկու փոփոխականները ցույց են տալիս նույն օբյեկտին հիշողության մեջ (այսինքն՝ համեմատում է օբյեկտների նույնականությունը): Օպերատոր ==-ը ստուգում է օբյեկտների արժեքների հավասարությունը, այսինքն՝ կանչում է __eq__ մեթոդը և համեմատում է բովանդակությունը կամ հավասարության տրամաբանությունը:

Օրինակ՝

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

print(a is b)  # Ճիշտ, քանի որ b հղում է նույն օբյեկտին
print(a == b)  # Ճիշտ, արժեքները համընկնում են

print(a is c)  # Սխալ, տարբեր օբյեկտներ
print(a == c)  # Ճիշտ, ցուցակների արժեքները հավասար են

Այսպիսով՝ is-ը նույնականության ստուգում է (մի օբյեկտ), իսկ ==՝ բովանդակության հավասարության ստուգում։