Горячо приветствую всех любителей Питона! У меня для вас загадка. Что сделают сии четыре прекрасных отрывка кода? x = 1 for x in range(6): pass print(x) x = 1 with open('tmp', 'w') as x: pass print(x) x = 1 try: pass except IOError as x: pass print(x) x = 1 try: raise IOError('test error') except IOError as x: pass print(x) Когда вы сделаете в уме свое предположение, запустите код и увидите, что ожидания (частично) разошлись с реальностью (unless you're Dutch), ваш разум может потребовать объяснений происходящему. Часть вы получите здесь https://mail.python.org/pipermail/python-3000/2007-January/005384.html, но здесь же вас ожидает вторая загадка! Там приведена некоторая трансформация кода. Однако, трансформированный код может упасть, даже если не падал исходный. Почему? Ответ на вторую здесь https://mail.python.org/pipermail/python-3000/2007-January/005387.html С чего начался весь сыр-бор: нижняя цитата и ответ на нее здесь https://mail.python.org/pipermail/python-3000/2007-January/005297.html Ну и можно полистать переписку вперед-назад для полноты картины.

Теги других блогов: загадки код Python