@rolandDiskeyn

Почему отличается поведение интерпретатора в IDE (pycharm) и в командной строке?

Почему поведение интерпретатора Python в cmd отличается от интерпретатора в IDE?
Интерпретатор в cmd при следующем коде выдаст False
x = 'Привет!'
y = 'Привет!'
id(x) == id(y)


Аналогичный код в IDE вернет True
x = 'Привет!'
y = 'Привет!'
print( id(x) == id(y) )
  • Вопрос задан
  • 132 просмотра
Решения вопроса 2
@bacon
разные версии питона, разный контекст выполнения, ты понимаешь смысл своего действия?

UPD: всё таки контекст, от этого зависит оптимизация
>>> x = 'Привет!'
>>> y = 'Привет!'
>>> id(x) == id(y)
False
>>> 
>>> x = 'Привет!'; y = 'Привет!'
>>> id(x) == id(y)
True
Ответ написан
QuiShimo
@QuiShimo
Лечу в .NET разработку
Привет!

Скорее проблема в русском языке. Если заменить строки на 'Hello' в консольном интерпретаторе - у меня оба варианта выдали True, как и должны.

Возможно в PyCharm работа оптимизатора хранилища настроена и на кириллицу. Или Python интерпретатор запускается с дополнительными аргументами.

И да, id(x) == id(y) только для неизменяемых типов и то не всегда.

Статьи по теме:
https://www.freecodecamp.org/news/mutable-vs-immut...
https://stackoverflow.com/questions/41684261/pytho...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы