Книга «Изучаем Python»



Pdf көрінісі
бет88/238
Дата07.01.2022
өлшемі7,86 Mb.
#18670
түріКнига
1   ...   84   85   86   87   88   89   90   91   ...   238
Байланысты:
2 5343781172763690906

УПРАЖНЕНИЯ

8-12 . Сэндвичи: напишите функцию, которая получает список компонентов сэндвича . Функ-

ция должна иметь один параметр для любого количества значений, переданных при вызове 

функции, и выводить описание заказанного сэндвича . Вызовите функцию три раза с разны-

ми количествами аргументов .

8-13 . Профиль: начните с копии программы user_profile .py . Создайте собственный профиль 

вызовом build_profile(), укажите имя, фамилию и три другие пары «ключ—значение» для 

вашего описания .

8-14 . Автомобили: напишите функцию для сохранения информации об автомобиле в слова-

ре . Функция всегда должна возвращать производителя и название модели, но при этом она 

может  получать  произвольное  количество  именованных  аргументов .  Вызовите  функцию 

с передачей обязательной информации и еще двух пар «имя—значение» (например, цвет 

и комплектация) . Ваша функция должна работать для вызовов следующего вида:

car = make_car(‘subaru’, ‘outback’, color=’blue’, tow_package=True)

Выведите возвращаемый словарь и убедитесь в том, что вся информация была сохранена 

правильно .

Хранение функций в модулях

Одно из преимуществ функций заключается в том, что они отделяют блоки кода 

от основной программы. Если для функций были выбраны содержательные имена

ваша программа будет намного проще читаться. Можно пойти еще дальше и сохра-

нить функции в отдельном файле, называемом модулем, а затем импортировать 

модуль в свою программу. Команда 

import

 сообщает Python, что код модуля дол-



жен быть доступен в текущем выполняемом программном файле.

Хранение функций в отдельных файлах позволяет скрыть второстепенные детали 

кода и сосредоточиться на логике более высокого уровня. Кроме того, функции 



Хранение функций в модулях    155

можно использовать во множестве разных программ. Функции, хранящиеся в от-

дельных файлах, можно передать другим программистам без распространения 

полного кода программы. А умение импортировать функции позволит вам исполь-

зовать библиотеки функций, написанные другими программистами.

Существует несколько способов импортирования модулей; все они кратко рас-

сматриваются ниже.

Импортирование всего модуля

Чтобы заняться импортированием функций, сначала необходимо создать модуль. 

Модуль представляет собой файл с расширением 

 .py

, содержащий код, который 



вы хотите импортировать в свою программу. Давайте создадим модуль с функци-

ей 


make_pizza()

. Для этого из файла 

pizza .py

 следует удалить все, кроме функции 

make_pizza()

:

pizza.py

def make_pizza(size, *toppings):

    """Выводит описание пиццы."""

    print("\nMaking a " + str(size) +

          "-inch pizza with the following toppings:")

    for topping in toppings:

        print("- " + topping)

Теперь создайте отдельный файл с именем 

making_pizzas .py

 в одном каталоге с 

pizza .


py

. Файл импортирует только что созданный модуль, а затем дважды вызывает 

make_pizza()

:

making_pizzas.py

import pizza

pizza.make_pizza(16, 'pepperoni')



pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')

В процессе обработки этого файла строка 

import  pizza

 приказывает Python от-

крыть файл 

pizza .py

 и скопировать все функции из него в программу. Вы не види-

те, как происходит копирование, потому что Python копирует код незаметно для 

пользователя во время выполнения программы. Вам необходимо знать одно: любая 

функция, определенная в 

pizza .py

, будет доступна в 

making_pizzas .py

.

Чтобы вызвать функцию из импортированного модуля, укажите имя модуля 



(

pizza


), точку и имя функции (

make_pizza()

), как показано в строке . Код вы-

дает тот же результат, что и исходная программа, в которой модуль не импорти-

ровался:

Making a 16-inch pizza with the following toppings: 

- pepperoni 

Making a 12-inch pizza with the following toppings: 

- mushrooms 

- green peppers 

- extra cheese



156    Глава 8  •  Функции

Первый способ импортирования, при котором записывается команда 

import

 с име-


нем модуля, открывает доступ программе ко всем функциям из модуля:



Достарыңызбен бөлісу:
1   ...   84   85   86   87   88   89   90   91   ...   238




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет