Из this link я узнал, чтоКак распаковка кортежа отличается от обычного назначения?
Текущая реализация хранит массив целых объектов для всех целых чисел от -5 до 256, при создании Int в этом диапазоне вы на самом деле просто получить назад ссылку на существующий объект
Но когда я попытался привести пример для своей сессии, я узнал, что он ведет себя по-разному при переустановке и распаковке кортежа.
Вот фрагмент кода,
Python 2.7.2 (default, Oct 11 2012, 20:14:37)
[GCC 4.2.1 Compatible Apple Clang 4.0 (tags/Apple/clang-418.0.60)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> a,b = 300,300
>>> a is b
True
>>> c = 300
>>> d = 300
>>> c is d
False
>>>
Не определено, как '' 'ведет себя за целые числа. Любые знания, которые вы получаете о том, как одна из реализаций ведет себя сегодня, будут хрупкими. –
@Anonymous: «Реализация, определенная» более точна, чем «не определена», но утверждение о хрупкости по-прежнему содержит – Eric
возможный дубликат [Weird Integer Cache внутри Python 2.6] (http://stackoverflow.com/questions/15171695/ странно-целочисленного кэш-внутри-питон-2-6). Не совсем тот же вопрос, но принятый ответ (отказ от ответственности: мой) показывает, что происходит в случае кортежей, которые, я считаю, достаточно, чтобы ответить на ваш вопрос: это так называемый оптимизатор глазок, который позволяет избежать дублирования констант. – Bakuriu