
Поширеною проблемою є плутанина з операторами порівняння "is" та "==". Оператор "==" порівнює значення, тоді як "is" перевіряє посилання на один і той же об'єкт у пам'яті. У коді наведено приклади для наочності.
a = [1, 2, 3, 4, 5]
b = а #b посилається на а
а = b #вірно
a is b #вірно
b = a[:] #b посилається на копію а
а = b #вірно
a is b #невірно
Є ще нюанс з рядками і цілими числами. Короткі рядки і маленькі цілі числа повертатимуть True в порівнянні з "is", позаяк Python намагається використовувати менше пам'яті для однакових об'єктів. Але довші рядки і великі цілі числа зберігатимуться окремо.
#Python // #practice // Вакансії IT
a = [1, 2, 3, 4, 5]
b = а #b посилається на а
а = b #вірно
a is b #вірно
b = a[:] #b посилається на копію а
а = b #вірно
a is b #невірно
Є ще нюанс з рядками і цілими числами. Короткі рядки і маленькі цілі числа повертатимуть True в порівнянні з "is", позаяк Python намагається використовувати менше пам'яті для однакових об'єктів. Але довші рядки і великі цілі числа зберігатимуться окремо.
#Python // #practice // Вакансії IT