Это для 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
Если это нормальное поведение, не мог бы кто-нибудь объяснить, что происходит.
Изменить: Отказ от ответственности! Это не используется для проверки равенства. На самом деле я хотел объяснить кому-то еще, что «есть» только для проверки идентичности, а не равенства. Из документации я понял, что ссылки, созданные таким образом, будут разными, что каждый раз будет создаваться новая строка. Самый первый пример, который я привел, сбил меня с толку, когда я не смог доказать свою точку зрения!
Редактировать: Я понимаю, что это , а не ошибка, и интернирование было для меня новой концепцией. Это кажется хорошим объяснением.