Основные тезисы
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 *