Строки иногда могут быть сложными (ч.3)
Резкое изменение выходных данных четвертого фрагмента связано с методом глазковой оптимизации, известным как постоянное сворачивание. Это означает, что выражение 'a'*20 заменяется на 'aaaaaaaaaaaaaaaaaaaa' во время компиляции, чтобы сэкономить несколько тактов во время выполнения. Постоянное сгибание происходит только для строк, имеющих длину менее 21. (Почему? Представьте размер .pyc файла, сгенерированного в результате выражения 'a'*10**10). Вот исходный код реализации для того же самого.
#theory // Just Python
Post #5706
353
