Module (20%)
Section (100%)

Основные тезисы


1. Если Вы хотите импортировать модуль целиком, Вы можете сделать это с помощью выражения import имя_модуля. Вы можете импортировать более одного модуля одновременно, используя список, разделенный запятыми. Например:

import mod1 import mod2, mod3, mod4

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

import mod2 import mod3 import mod4

2. Если модуль импортируется указанным выше способом и Вы хотите получить доступ к какой-либо из его сущностей, вам необходимо указать префикс имени сущности, используя точечную нотацию. Например:

import my_module result = my_module.my_function(my_module.my_data)

Код использует две сущности, поступающие из модуля my_module: функцию с именем my_function() и переменную с именем my_data. Оба имени должны иметь префикс my_module. Ни одно из имен импортированных сущностей не конфликтует с идентичными именами, существующими в пространстве имен Вашего кода.


3. Вам разрешено не только импортировать модуль целиком, но и импортировать из него только отдельные объекты. В этом случае импортированные объекты не должны иметь префикса при использовании. Например:

from module import my_function, my_data result = my_function(my_data)

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


4. Самая общая форма приведенного выше оператора позволяет импортировать все сущности, предлагаемые модулем:

from my_module import * result = my_function(my_data)

Примечание: этот вариант импорта не рекомендуется по тем же причинам, что и ранее (угроза конфликта имен здесь еще более опасна).

5. Вы можете изменить имя импортированного объекта "на лету", используя ключевое слово as в инструкции import. Например:

from module import my_function as fun, my_data as dat result = fun(dat)

Упражнение 1

Вы хотите вызвать функцию make_money(), содержащуюся в модуле с именем mint. Ваш код начинается со следующей строки:

import mint

Какова правильная форма вызова функции?



Упражнение 2

Вы хотите вызвать функцию make_money(), содержащуюся в модуле с именем mint. Ваш код начинается со следующей строки:

from mint import make_money

Какова правильная форма вызова функции?



Упражнение 3

Вы написали функцию с именем make_money. Вам нужно импортировать функцию с тем же именем из модуля mint и Вам не хочется переименовывать какое-либо из ранее определенных имен. Какой вариант инструкции import может помочь Вам в решении проблемы?



Упражнение 4

Какая форма вызова функции make_money допустима, если Ваш код начинается со следующей строки?

from mint import *