Уроки Python, часть 6 - модули

















Всем привет. Мы почти закончили обучение основам питона и сегодня узнаем об еще одной интересной штуке — о модулях.Затем будет еще одни урок с различными полезными функциями, потом мини обзор всего пройденного в одном коде, а дальше… ООП! Да, объектно ориентированное программирование! Вот так быстро мы двигаемся.



Честно говоря — для полной понимании структуры модулей необходимо знать начальные понятия ООП, но мы попробуем обойтись без этого.



Что это


Итак. Модуль — это обычная программа. Только мы ее импортируем в другую, чтобы использовать ее возможности (функции, переменные и т.д.). Модули бывают стандартными, т.е. которые включены в стандартную библиотеку, а можно создать и свои. Давайте подключим очень полезный модуль os:

import os #сделали импорт. os - название модуля

os.getcwd() #указываем имя модуля, а после него имя функции, которая есть в этом модуле




МОДУЛЬ МОЖЕТ БЫТЬ НАПИСАН НЕ ТОЛЬКО НА PYTHON, А ТАКЖЕ И НА ДРУГИХ ЯЗЫКАХ. НА C++, НАПРИМЕР.


Также можно перечислять имена модулей через запятую, эффект будет тот же. После импорта модуля, мы можем получить доступ к его:

  • Переменным
  • Функциям
  • Классам


ЕСЛИ ИМЯ МОДУЛЯ СЛИШКОМ ДЛИННОЕ, ТО МОЖНО ИСПОЛЬЗОВАТЬ ПСЕВДОНИМЫ


Стандартные модули располагаются в папке питона (/usr/lib/python3). Заметили, что имена не у всех такие короткие, как у os? Вот. И чтобы не писать длиннющие имена, можно использовать вот такую конструкцию:

import os as o


Все, теперь надо писать не os.что-то, а o.что-то. Псевдоним может быть любой (согласно с правилами обозначений переменных).



Подробнее
Также можно проводить выборочный импорт. Работает он так:

from math import e, ceil  #as здесь тоже можно использовать

from math import * #так мы импортируем ВСЕ


Небольшое примечание — лучше не используйте import *. Так может нарушиться глобальное пространство имен, т.е. некоторые переменные могут быть перезаписаны. Особенно опасно для больших проектов.



Также можно задать переменную __all__ и в ней указать модули, которые можно импортировать. В таком случае будет импортироваться только то, что указано в этой переменной при import *.



Свой модуль
Тут нет ничего особенного :)

  1. Создайте два файла с разными именами
  2. В первом файле разместить какой-то код
  3. Во втором импортируйте первый файл
Все! Теперь можно получить доступ к функциям, переменным и т.д.



Полезные модули
Небольшой список полезных модулей, которые вам сильно помогут:

  • os
  • pickle
  • datetime
  • random
  • math
  • sys
Их описание вы можете найти в Интернете или на ман страничке.



На этом все, не болейте и посещайте Дафтер!