Это ошибка? Переменные - это идентичные ссылки на одну и ту же строку в этом примере (Python)

Это для Python 2.6.

Я не мог понять, почему a и b идентичны:

>>> a = "some_string"
>>> b = "some_string"
>>> a is b
True

Но если в строке есть пробел, они не являются:

>>> a = "some string"
>>> b = "some string"
>>> a is b
False

Если это нормальное поведение, не мог бы кто-нибудь объяснить, что происходит.

Изменить: Отказ от ответственности! Это не используется для проверки равенства. На самом деле я хотел объяснить кому-то еще, что «есть» только для проверки идентичности, а не равенства. Из документации я понял, что ссылки, созданные таким образом, будут разными, что каждый раз будет создаваться новая строка. Самый первый пример, который я привел, сбил меня с толку, когда я не смог доказать свою точку зрения!

Редактировать: Я понимаю, что это , а не ошибка, и интернирование было для меня новой концепцией. Это кажется хорошим объяснением.

8
задан sarshad 12 November 2010 в 18:45
поделиться