Читаем Простой Python полностью

Текст этой книги организован в иерархию: слова, предложения, абзацы и главы. В противном случае он стал бы нечитаемым спустя пару страниц. У кода имеется подобная организация: типы данных похожи на слова, операторы и выражения — это предложения, функции — это абзацы, а модули — это главы. Продолжу аналогию: когда я говорю, что что-то будет более подробно рассмотрено в главе 8, в программировании это было бы похоже на отсылку к коду другого модуля.

Мы ссылаемся на код других модулей с помощью оператора import. Оно позволяет получить доступ к коду и переменным этого модуля из вашей программы.

<p>Импортируем модуль</p>

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

Основная программа выглядит так (назовем ее weatherman.py):

import report

description = report.get_description()

print("Today's weather: ", description)

А ее модуль (report.py) — так:

def get_description():··# смотрите строку документации

····"""Return random weather, just like the pros"""

····from random import choice

····possibilities = ['rain', 'snow', 'sleet', 'fog', 'sun', 'who knows']

····return choice(possibilities)

Если вы поместите оба этих файла в один каталог и укажете Python запустить файл weatherman.py в качестве основной программы, он обратится к модулю report и запустит его функцию get_description(). Мы написали эту версию функции get_description() так, чтобы она возвращала случайную строку из списка, которую выведет на экран основная программа:

$ python weatherman.py

Today's weather: who knows

$ python weatherman.py

Today's weather: sun

$ python weatherman.py

Today's weather: sleet

Мы использовали оператор import в двух местах.

• В основной программе weatherman.py, импортируемой модулем report.

• В файле модуля report.py функция get_description() импортирует функцию choice из стандартного модуля Python random.

Мы также использовали эти операторы двумя разными способами.

• Основная программа делала вызов import report и затем вызывала функцию report.get_description().

• Функция get_description() из модуля report.py содержит вызовы from random import choice и choice(possibilities).

В первом случае мы импортировали модуль report целиком, при этом нам нужно было добавить префикс report., чтобы вызвать функцию get_description(). После этого оператора import все содержимое файла report.py становится доступным основной программе, нужно лишь ставить перед именем вызываемой функции префикс report.. Путем уточнения содержимого модуля с помощью его имени мы избегаем возникновения неприятных конфликтов именования. В каком-то другом модуле также может быть функция get_descpirtion(), и мы не вызовем ее по ошибке.

Во втором случае мы находимся внутри функции и знаем, что существует только одна функция с именем choice, поэтому импортируем функцию choice() непосредственно из модуля random. Мы могли бы написать функцию как следующий сниппет, который возвращает случайный результат:

def get_description():

····import random

····possibilities = ['rain', 'snow', 'sleet', 'fog', 'sun', 'who knows']

····return random.choice(possibilities)

Как и для многих других аспектов программирования, выбирайте стиль, который кажется вам наиболее прозрачным. Имя функции, перед которым стоит имя модуля (random.choice), использовать безопаснее, однако из-за этого придется набирать немного больше текста.

Эти примеры применения функции get_description() продемонстрировали варианты того, что можно импортировать, но не показали, где следует выполнять импортирование, — в них import вызывался изнутри функции. Мы могли бы импортировать random из другой функции:

>>> import random

>>> def get_description():

…····possibilities = ['rain', 'snow', 'sleet', 'fog', 'sun', 'who knows']

…····return random.choice(possibilities)

>>> get_description()

'who knows'

>>> get_description()

'rain'

Перейти на страницу:

Все книги серии Бестселлеры O'Reilly

Искусство управления IT-проектами
Искусство управления IT-проектами

В отличие от множества трудов, посвященных руководству проектами и командами, в этой книге не проповедуются никакие новые учения и не превозносятся великие теории. Скотт Беркун считает залогом успеха практику и разнообразие подходов. В книге описываются основные сложности и проблемные ситуации, возникающие в работе менеджера проекта, даны рекомендации по выходу из них.Издание предназначено не только для лидеров команд и менеджеров высшего звена, но и для программистов, тестеров и других исполнителей конкретных проектных заданий. Также оно будет полезно студентам, изучающим бизнес-менеджмент, проектирование изделий или программную инженерию.Текст нового издания значительно переработан автором с целью добиться большей ясности, кроме того, книга дополнена новым приложением и более чем 120 практическими упражнениями.

Скотт Беркун

Деловая литература
iOS. Приемы программирования
iOS. Приемы программирования

Книга, которую вы держите в руках, представляет собой новый, полностью переписанный сборник приемов программирования по работе с iOS. Он поможет вам справиться с наболевшими проблемами, с которыми приходится сталкиваться при разработке приложений для iPhone, iPad и iPod Touch. Вы быстро освоите всю информацию, необходимую для начала работы с iOS 7 SDK, в частности познакомитесь с решениями для добавления в ваши приложения реалистичной физики или движений — в этом вам помогут API UIKit Dynamics.Вы изучите новые многочисленные способы хранения и защиты данных, отправки и получения уведомлений, улучшения и анимации графики, управления файлами и каталогами, а также рассмотрите многие другие темы. При описании каждого приема программирования приводятся образцы кода, которые вы можете смело использовать.

Вандад Нахавандипур

Программирование, программы, базы данных / Программирование / Книги по IT

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных