Pull to refresh

Comments 13

Весьма интересно!

Где делали такие картинки к статье?

Не надо так пугать людей превьюхой - я думал у меня монитор глючить начал (дрожать) 😆
... ну или с глазами уже совсем всё плохо стало...

Воистину Perl-программу можно написать на любом языке!

Интересно было почитать. Спасибо.

Позанудствую.

Разумеется, продолжать "заглядывать внутрь" можно бесконечно долго:

Предел всё-таки есть:

>>> lst = []
>>> lst.append(lst)
>>> idx = '[0]'
>>> eval(f'print(lst{idx*2995} is lst)')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RecursionError: maximum recursion depth exceeded during compilation
>>>

Да я тоже не специалист. С юности имею дурную привычку проверять утверждения из газет. В примере по ссылке речь о лимите в рантайме, а тут - при компиляции:

>>> from sys import setrecursionlimit as reclim
>>> reclim(10000)
>>> lst = []
>>> lst.append(lst)
>>> idx = '[0]'
>>> eval(f'print(lst{idx*2995} is lst)')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
RecursionError: maximum recursion depth exceeded during compilation
>>>

У python есть несколько режимов работы. Ключевые параметры в них могут сильно отличаться. Как и возможности их изменения. В рантайме ограничение где-то в 3 раз меньше. А при компиляции почему-то вот такое. И как на него повилять я уже не знаю.

Спасибо за подробности - если бы у меня была карма то плюсанул бы. 🤝

Если вдруг вы, как и я, зависли над

print(False == False in [False]) # Вывод: True

То объяснение - chaining операторов сравнения, это выражение эквивалентно

print(False == False and False in [False])

Которое, действительно, True, и никакой особой связи с int'ами здесь нет.
P.S. имхо, не стоит так писать.

Про all и any обоснование такое. "Плюс" обозначает контактенцию списков.

Очевидно, что `all(a + b) = all(a) and all(b)` . Также очевидно, что если `b = []` , то `all(a + b) = all(a)` . Отсюда получаем, что all([]) должно быть равно True.

Аналогичную логику можно привести для any

Все лучше осознаю факт того, что все сложное строиться на осознании базовых принципов. Спасибо за статью, заставило немного задуматься)

Sign up to leave a comment.

Articles