Читать «Программирование на Python. Том 1» онлайн - страница 667

Марк Лутц

42

Не я автор данной картинки - она появилась в качестве баннера на сайтах для разработчиков, таких как slashdot.com, когда в 1999 году вышло первое издание «Learning Python». Она породила такую волну возмущения приверженцев Perl, что издательство O’Reilly в конце концов было вынуждено убрать эту рекламу. Хотя возможно, именно поэтому она оказалась в этой книге.

43

Использована цитата из фильма Стенли Кубрика «Сияние». - Прим. ред.

44

О технике анимации рассказывается в конце данного обзора. Поскольку в область отрисовки холста можно встраивать другие виджеты, собственная координатная система делает холсты идеальными инструментами для реализации графических интерфейсов, дающих пользователям возможность создания других графических интерфейсов путем перетаскивания встроенных виджетов по холсту - весьма полезное применение холста, которое мы изучили бы в этой книге, будь у меня несколько сотен лишних страниц.

45

Я решил обратить ваше внимание на это, поскольку считаю, что понимание опасности позволит в будущем избежать ее - если процесс Python обладает правом удаления файлов, передача функции eval строки с программным

кодом__import__(‘ os’ ). system(‘ rm -rf *’ ) в Unix приведет к вызову команды

оболочки, которая удалит все файлы в текущем каталоге и во вложенных в него подкаталогах (в Windows аналогичный эффект можно получить с помощью команды ‘ rmdir /S /Q . ’). Не делайте этого! Чтобы увидеть менее опасное и более полезное применение этой особенности, введите выражение__import__(‘ math’ ). pi в одну из ячеек таблицы - щелчок на кнопке Sum

вычислит значение pi (3.14159). Также безопасно будет передать функции

eval выражение “__import__(‘os’ ). system( ‘ di r’)” в интерактивном сеансе. Все

вышесказанное относится и к встроенной функции exec - функция eval выполняет строки выражений, функция exec - инструкции, а выражения являются инструкциями (но не наоборот). Разумеется, обычный пользователь графического интерфейса едва ли введет подобный программный код случайно, особенно если этот пользователь вы сами, но будьте внимательны!

46

Игра-симулятор пинг-понга, появившаяся в 1972 году и ставшая прародительницей таких известных игр, как Breakout и Arkanoid. - Прим. перев.

47

Самая известная, пожалуй, компания Eve Online по производству игровых программ использует Python для создания сценариев и значительной доли функциональности - не только для серверной, но и для клиентской части. Она использует версию Stackless Python, чтобы обеспечить высокую отзывчивость интерфейса при большом количестве параллельно выполняющихся заданий. Из других известных компаний, использующих Python, можно назвать производителя игры Civilization IV и ныне несуществующую Origin Systems (в последних сообщениях говорилось, что их игра Ultima Online II должна была использовать Python для поддержки анимации).

48

Имеется в виду модель автомобиля «Chevrolet Camaro», пользующаяся славой надежного и неприхотливого автомобиля. - Прим. перев.