You are on page 1of 23

Python

Modules

Музафаров Максим
МТ-308
modules

Зачем это нужно:


modules

Зачем это нужно:


 Модули позволяют избежать
дублирования кода
modules

Зачем это нужно:


 Модули позволяют избежать
дублирования кода

 Позволяют создавать пространства имен


modules

Зачем это нужно:


 Модули позволяют избежать
дублирования кода

 Позволяют создавать пространства имен

 Глобализация сервисов и данных


Python-modules

Использование модулей
Python-modules

Модуль – отдельный файл с


расширением .py

 в отличие от Perl, где основной скрипт .pl, а


модуль .pm,
в питоне такого нет. И любой файл .py может быть
как готовым скриптом, так и лишь модулем.
Python-modules

 import my_module
 my_module.func()
 my_module.a
 f1=my_module.func1
Python-modules

 import my_module
 my_module.func()
 my_module.a
 f1=my_module.func1
 from
 from my_module import func1,func2
Python-modules

 import my_module
 my_module.func()
 my_module.a
 f1=my_module.func1
 from
 from my_module import func1,func2
 *
 from my_module import *
Python-modules

 import my_module
 my_module.func()
 my_module.a
 f1=my_module.func1
 from
 from my_module import func1,func2
 *
 from my_module import *
 alias
 from my_module import func as my_func
Python-modules-PATH

Расположение модулей
Python-modules-PATH

Порядок поиска модуля:


1. В текущей папке запуска интерпретатора
(в папке запуска скрипта)
Python-modules-PATH

Порядок поиска модуля:


1. В текущей папке запуска интерпретатора
(в папке запуска скрипта)
2.По порядку в каждой из директорий, указанных в
переменной PYTHONPATH
(>>>import sys
>>>sys.path)
Python-modules-PATH

Порядок поиска модуля:


1. В текущей папке запуска интерпретатора
(в папке запуска скрипта)
2.По порядку в каждой из директорий, указанных в
переменной PYTHONPATH
(>>>import sys
>>>sys.path)

Так как в Питоне всё – объект, то и к


переменной sys.path можно применять
метод append.
Python-modules-STD

Стандартные модули

http://docs.python.org/library/
Python-modules-STD

 Встроенные функции Питона содержатся в


модуле __builtin__

Однако, он уже импортирован


Python-modules-SYS

SYS
 sys.argv – аргументы
 sys.getfilesystemencoding() - кодировка ФС
 sys.maxint
 sys.modules – список загруженных модулей
 sys.ps1
 sys.ps2 – приглашения интерпретатора
Python-modules-Pickle

Pickle
Powerful algorithm for serializing and de-serializing
a Python object structure

 pickle.dump(obj, file[, protocol])


 pickle.load(file)
Python-packages

Пакеты
Python-packages
TCP/
_init_.py Файл _init_.py необходим для того, чтобы интерпретатор
распознал каталог, как содержащий пакет. Обычно это
пустой файл
main.py

Server/
_init_.py
tcp.py
server.py
lib.py
Client/
_init_.py
tcp.py
client.py
lib.py
Python-packages
 from TCP import *
Для этого в корневом __init__.py должен
быть определен список __all__
Например:
__all__ = ["Server", "Client"]
Python-docs
 Для документирования в Питоне есть
некоторая хитрость, именуемая docstring
То есть, просто написав комментарий к
функции, можно написать своего рода
документацию к ней.