Python 3: модули

Назад | Python 3 учебник | Вперёд

Каждый раз, когда вы создаёте новый файл *.py, вы создаёте новый модуль. Он может содержать определения функций, переменных, код для инициализации и т. д. Мы можем использовать в своём модуле ресурсы другого модуля, для этого нам нужно его импортировать с помощью оператора import:

Например, попробуем создать простой модуль с парой функций в Spyder 3:

Сохраним его под именем “mymodule.py” в каком-нибудь подкаталоге домашнего каталога пользователя

Попробуем подключить этот модуль в новом файле. Создайте новый файл (Файл -> Создать) в Spyder 3. Туда вставьте следующий код:

Сохраните его в том же каталоге с именем “main.py”. Как мы видим, сейчас Spyder 3 подчёркивает строчку import mymodule красным, что означает, то здесь он нашёл ошибку. На самом деле он просто не может найти mymodule.

Нам нужно поправить переменную PYTHONPATH. Она используется для поиска модулей Python. Для этого в главном меню выберите Инструменты -> Менеджер PYTHONPATH.

Spyder 3 менеджер PYTHONPATH
Spyder 3 PYTHONPATH

В открывшемся окне добавьте каталог, в котором вы сохранили файл “mymodule.py”.

Теперь попробуйте запустить на выполнение наш “main.py”. В консоли мы увидим число 15.

Что мы на самом деле сделали? Во-первых, мы импортировали наш модуль mymodule. Во-вторых, мы обратились к функции tripleSum из нашего модуля, при этом мы указали имя модуля mymodule перед именем функции. Точно так же можно было обратиться и к функции func1.

Если очень часто обращаться к модулю, то постоянно набирать длинное имя может надоесть. Вы можете при подключении модуля указать для него короткий псевдоним. Вот так:

При желании мы можем импортировать не весь модуль, а только один его член. Например:

Мы использовали конструкцию from ... import ... для импорта только функции tripleSum. Обратите внимание, что нам теперь не нужно указывать имя модуля при вызове функции. Такой конструкцией можно с помощью символа «*» импортировать все методы:

Назад | Python 3 учебник | Вперёд

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *