9 января 2014 г.

Основы программирования модулей

Давайте вспомним предыдущие статьи, все они были о подключении и использовании модулей... Но теперь пришло время разобраться в том, как самим создавать модули.

Чтобы определить модуль, достаточно воспользоваться текстовым редактором, я использую Sublime Text, с его помощью ввести некоторый программный код на языке Python в текстовый файл и сохранить его с расширением «.py» – любой такой файл автоматически
будет считаться модулем Python. Все имена, которым будет выполнено присваивание на верхнем уровне модуля, станут его атрибутами (именами, ассоциированными с объектом модуля) и будут доступны для использования клиентами.


Например, если ввести следующую инструкцию def в файл с именем module1.py и импортировать его, тем самым будет создан объект модуля с единственным атрибутом – именем printer, которое ссылается на объект функции:
def printer(x):        # Атрибут модуля
    print(x)

Вы можете называть ваши модули, как вам будет угодно, при условии, что эти имена будут оканчиваться расширением .py, если вы собираетесь импортировать их. Для главных файлов программ, которые будут запускаться, но не будут импортироваться, имена не обязательно должны иметь расширение .py,однако было бы желательно использовать это расширение в любом случае, потому что оно делает назначение файлов более очевидным и позволит в будущем импортировать любой из ваших файлов.

При импорте, имя модуля становится переменной, и потому стоит соблюдать правила создание имен для модулей. К примеру если вы назвали файл модуля if.py тогда import if не сработает, так как if зарезервированное имя.

Когда производится импорт модуля, интерпретатор Python преобразует имя модуля в имя внешнего файла, добавляя в начало путь к каталогу из пути поиска модулей и добавляя .py или другое расширение в конец. Например, в конечном итоге имя модуля M преобразуется в имя некоторого внешнего файла <каталог>\M.<расширение>, который содержит программный код модуля.

Как упоминалось в предыдущей статье, существует возможность создать модуль для Python на другом языке программирования, таком как C или C++ (или Java в реализации Jython). Такие модули называются модулями расширений и обычно используются для создания библиотек, используемых сценариями на языке Python. Когда модули расширений импортируются программным кодом на языке Python, они выглядят и ведут себя точно так же, как обычные модули, написанные на языке Python, – они импортируются инструкцией import и предоставляют функции и объекты в виде атрибутов объекта модуля. Обсуждение модулей расширений выходит далеко за рамки этой книги, поэтому за дополнительной информацией обращайтесь к стандартным руководствам по языку Python или к специализированным книгам, таким как «Программирование на Python».


Комментариев нет:

Отправить комментарий