УПРАЖНЕНИЯ
9-10 . Импортирование класса Restaurant: возьмите последнюю версию класса Restaurant
и сохраните ее в модуле . Создайте отдельный файл, импортирующий класс Restaurant .
Создайте экземпляр Restaurant и вызовите один из методов Restaurant, чтобы показать, что
команда import работает правильно .
9-11 . Импортирование класса Admin: начните с версии класса из упражнения 9-8 (с . 176) .
Сохраните классы User, Privileges и Admin в одном модуле . Создайте отдельный файл, соз-
дайте экземпляр Admin и вызовите метод show_privileges(), чтобы показать, что все рабо-
тает правильно .
9-12 . Множественные модули: сохраните класс User в одном модуле, а классы Privileges
и Admin в другом модуле . В отдельном файле создайте экземпляр Admin и вызовите метод
show_privileges(), чтобы показать, что все работает правильно .
Стандартная библиотека Python
Стандартная библиотека Python представляет собой набор модулей, включаемых
в каждую установленную копию Python. Сейчас вы уже примерно понимаете, как
работают классы, и можете начать использовать модули, написанные другими
программистами. Чтобы использовать любую функцию или класс из стандартной
библиотеки, достаточно включить простую команду
import
в начало файла. Для
примера рассмотрим класс
OrderedDict
из модуля
collections
.
Как вы уже знаете, словари позволяют связывать информационные фрагменты, но
они не отслеживают порядок добавления пар «ключ—значение». Если вы хотите
создать словарь, но при этом сохранить порядок добавления пар «ключ—значение»,
воспользуйтесь классом
OrderedDict
из модуля
collections
. Экземпляры класса
OrderedDict
ведут себя практически так же, как и словари, если не считать того, что
они отслеживают порядок добавления пар «ключ—значение».
Вернемся к примеру
favorite_languages .py
из главы 6. На этот раз программа будет
отслеживать порядок, в котором участники отвечают на опрос:
favorite_languages.py
from collections import OrderedDict
favorite_languages = OrderedDict()
Стандартная библиотека Python 183
favorite_languages['jen'] = 'python'
favorite_languages['sarah'] = 'c'
favorite_languages['edward'] = 'ruby'
favorite_languages['phil'] = 'python'
for name, language in favorite_languages.items():
print(name.title() + "'s favorite language is " +
language.title() + ".")
Сначала программа импортирует класс
OrderedDict
из модуля
collections
в точ-
ке . В точке создается экземпляр класса
OrderedDict
, который сохраняется
в
favorite_languages
. Обратите внимание на отсутствие фигурных скобок; вызов
OrderedDict()
создает пустой упорядоченный словарь и сохраняет его в
favorite_
languages
. Затем пары из имени и языка последовательно добавляются в словарь .
Теперь при переборе
favorite_languages
в точке данные всегда будут выдаваться
в порядке их добавления:
Jen's favorite language is Python.
Sarah's favorite language is C.
Edward's favorite language is Ruby.
Phil's favorite language is Python.
Это чрезвычайно полезный класс, объединяющий основное преимущество списков
(сохранение исходного порядка) с главной особенностью словарей (связывание
двух видов информации). Когда вы займетесь моделированием реальных ситуаций,
может возникнуть ситуация, в которой упорядоченный словарь окажется именно
тем, что вам необходимо. А по мере изучения стандартной библиотеки вы узнаете
о других полезных модулях, которые помогут вам в решении типичных задач.
Достарыңызбен бөлісу: |