детали разработки.
156
Глава 5. Py Boxes: модули, пакеты и программы
Упражнения
1. Создайте файл, который называется zoo.py. В нем объявите функцию hours(),
которая выводит на экран строку ' Open 9-5 daily'. Далее используйте интерак-
тивный интерпретатор, чтобы импортировать модуль zoo и вызвать его функцию
hours().
2. В интерактивном интерпретаторе импортируйте модуль zoo под именем menagerie
и вызовите его функцию hours().
3. Оставаясь в интерпретаторе, импортируйте непосредственно функцию hours()
из модуля zoo и вызовите ее.
4. Импортируйте функцию hours() под именем info и вызовите ее.
5. Создайте словарь с именем plain, содержащий пары «ключ — значение» 'a': 1,
'b': 2 и 'c':3, а затем выведите его на экран.
6. Создайте OrderedDict с именем fancy из пар «ключ — значение», приведенных
в упражнении 5, и выведите его на экран. Изменился ли порядок ключей?
7. Создайте defaultdict с именем dict_of_lists и передайте ему аргумент list.
Создайте список dict_of_lists['a'] и присоедините к нему значение 'something
for a' за одну операцию. Выведите на экран dict_of_lists['a'].
6 Ой-ой-ой: объекты
и классы
Таинственных объектов не бывает. Они
такими просто кажутся.
Элизабет Боуэн
Возьмите объект. Сделайте что-нибудь с ним.
Добавьте что-нибудь другое к нему.
Джаспер Джонс
К этому моменту вы уже познакомились с такими структурами данных, как строки
и словари, а также со структурами кода — функциями и модулями. В текущей главе
вы узнаете о пользовательской структуре данных — объектах.
Что такое объекты
Как я упоминал в главе 2, все в Python, от чисел до модулей, является объектами.
Однако Python скрывает большую часть принципов функционирования объектов
с помощью особого синтаксиса. Вы можете написать num = 7, чтобы создать объект
типа int со значением 7, и присвоить ссылку на него по имени num. Заглядывать
внутрь объектов нужно только в случае, если вам необходимо создать собственный
объект или модифицировать поведение уже существующих объектов. В этой главе
вы увидите, как сделать и то и другое.
Объект содержит как данные (переменные, которые называются атрибутами),
так и код (функции, которые называются методами). Он представляет собой уни-
кальный экземпляр какого-то конкретного предмета. Например, целочисленный
объект со значением 7 может использовать методы вроде сложения и умножения,
что показано в разделе «Числа» главы 2. 8 — это другой объект. Это значит, что
существует класс Integer, которому принадлежат объекты 7 и 8. Строки 'cat' и 'duck'
также являются объектами и имеют методы, с которыми вы уже знакомы, — напри-
мер, capitalize() и replace().
Когда вы создаете новые объекты, которые до вас не создавал никто, вы должны
создать класс, который демонстрирует их содержимое.