tgoop.com/prog_way_blog/27
Create:
Last Update:
Last Update:
Сегодня совсем коротко, но зато со смыслом.
Думаю, многие знают, что в Python есть такие операторы, как is
и ==
. Оба они идейно похожи - они указывают на равенство объектов. Казалось бы, одно и то же, но давайте на примере:
# объявим наши переменные
# таким образом
a = [1, 2, 3]
b = a
c = [1, 2, 3]
Отлично, проверим?
a == b
>>> True
a is b
>>> True
a == c
>>> True
a is c
>>> False
Первые три выражения дали вполне ожидаемый ответ, а с последним всё не так однозначно.
a == b == c == [1, 2, 3]
, с этим не поспорить. b = a
, значит b
- ссылка на объект a
, следовательно обе переменные ссылаются на один и тот же список [1, 2, 3]
в памяти. А вот c
- это уже новый объект в памяти, и пусть даже c == a
, но это разные объекты. Именно поэтому a is c ⇒ False
.В этом и заключается вся разница.
#python
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/27