Python Модули — файлы с полезными функциями.
Python Модули позволяют вынести уже отлаженные функции программы в отдельные файлы, которые и называются модулями — чисто конкретно, чтобы эти функции не путались под ногами.
Привожу информацию про Python Модули из справочника Бизли:
Модули
Часто по мере роста программы возникает желание разбить её на несколько файлов, чтобы упростить её разработку и дальнейшее сопровождение. Язык Python позволяет помещать определения в файлы и использовать их как модули, которые могут импортироваться другими программами и сценариями.
Чтобы создать модуль, необходимо поместить соответствующие инструкции и определения в файл с тем же именем, которое будет присвоено модулю. (Обратите внимание, что имя файла должно иметь расширение .py.) Например:
# файл : div.py
def divide(a, b): q = a/b # Если a и b – целые числа, q будет целым числом
r = a — q*b return (q, r)Использовать модуль в других программах можно с помощью инструкции import:
import div
a, b = div.divide(2305, 29)Инструкция import создаёт новое пространство имён и внутри этого пространства имён выполняет все инструкции, находящиеся в файле с расширением .py.
Чтобы получить доступ к содержимому этого пространства имён после импортирования, достаточно просто использовать имя модуля в качестве префикса, как это сделано в вызове функции div.divide() в предыдущем примере.
Если потребуется импортировать модуль под другим именем, достаточно добавить в инструкцию import дополнительный квалификатор as, как показано ниже:
import div as foo
a,b = foo.divide(2305,29)Чтобы импортировать некоторые определения в текущее пространство имен, можно воспользоваться инструкцией from:
from div import divide
a,b = divide(2305,29) # Префикс div больше не нуженЧтобы загрузить в текущее пространство имен всё содержимое модуля, можно использовать следующий прием:
from div import *При вызове функции dir() с именем модуля она выведет содержимое указанного модуля, что делает эту фунцию удобным инструментом для экспериментов в интерактивной оболочке:
>>> import string
>>> dir(string)
[‘__builtins__’, ‘__doc__’, ‘__file__’, ‘__name__’, ‘_idmap’, ‘_idmapL’, ‘_lower’, ‘_swapcase’, ‘_upper’, ‘atof’, ‘atof_error’, ‘atoi’, ‘atoi_error’, ‘atol’, ‘atol_error’, ‘capitalize’, ‘capwords’, ‘center’, ‘count’, ‘digits’, ‘expandtabs’, ‘find’, … >>>
Python Модули в большом количестве включены в состав каждого пакета Python, много Модулей находится в каталоге C:\Python36\Lib\idlelib\
Выписываю названия модулей, которые представляют для меня наибольший интерес:
1. Модуль math содержит математические функции. Выполнив в окне Sheell две команды
import math
dir(math)
получаю список входящих в пакет math функций:
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
2. Модуль editor содержит . Выполнив в окне Sheell две команды
import editor
dir(editor)
получаю список входящих в пакет editor функций:
['ACTIVE', 'ALL', 'ANCHOR', 'ARC', 'BASELINE', 'BEVEL', 'BOTH', 'BOTTOM', 'BROWSE', 'BUTT', 'BaseWidget', 'BitmapImage', 'BooleanVar', 'Button', 'CASCADE', 'CENTER', 'CHAR', 'CHECKBUTTON', 'CHORD', 'COMMAND', 'CURRENT', 'CallWrapper', 'Canvas', 'Checkbutton', 'DISABLED', 'DOTBOX', 'DoubleVar', 'E', 'END', 'EW', 'EXCEPTION', 'EXTENDED', 'EditorWindow', 'Entry', 'Event', 'EventType', 'FALSE', 'FIRST', 'FLAT', 'Frame', 'GROOVE', 'Grid', 'HIDDEN', 'HORIZONTAL', 'INSERT', 'INSIDE', 'Image', 'IndentSearcher', 'IntVar', 'LAST', 'LEFT', 'Label', 'LabelFrame', 'Listbox', 'MITER', 'MOVETO', 'MULTIPLE', 'Menu', 'Menubutton', 'Message', 'Misc', 'MultiCallCreator', 'N', 'NE', 'NO', 'NONE', 'NORMAL', 'NS', 'NSEW', 'NUMERIC', 'NW', 'NoDefaultRoot', 'OFF', 'ON', 'OUTSIDE', 'OptionMenu', 'PAGES', 'PIESLICE', 'PROJECTING', 'Pack', 'PanedWindow', 'PhotoImage', 'Place', 'RADIOBUTTON', 'RAISED', 'READABLE', 'RIDGE', 'RIGHT', 'ROUND', 'Radiobutton', 'S', 'SCROLL', 'SE', 'SEL', 'SEL_FIRST', 'SEL_LAST', 'SEPARATOR', 'SINGLE', 'SOLID', 'SUNKEN', 'SW', 'Scale', 'Scrollbar', 'Spinbox', 'StringVar', 'TK_TABWIDTH_DEFAULT', 'TOP', 'TRUE', 'Tcl', 'TclError', 'TclVersion', 'Text', 'Tk', 'TkVersion', 'Toplevel', 'UNDERLINE', 'UNITS', 'VERTICAL', 'Variable', 'W', 'WORD', 'WRITABLE', 'Widget', 'Wm', 'X', 'XView', 'Y', 'YES', 'YView', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_editor_window', '_py_version', '_sphinx_version', 'classifyws', 'configdialog', 'constants', 'enum', 'fixwordbreaks', 'get_accelerator', 'getboolean', 'getdouble', 'getint', 'grep', 'help', 'help_about', 'idleConf', 'image_names', 'image_types', 'importlib', 'index2line', 'keynames', 'macosx', 'mainloop', 'os', 'platform', 'prepstr', 'pyparse', 'query', 're', 'replace', 'search', 'string', 'sys', 'textview', 'tkMessageBox', 'tkSimpleDialog', 'tokenize', 'traceback', 'wantobjects', 'webbrowser', 'windows']
Судя по числу строк (23 против 5-ти), число функций примерно в 5-ть раз больше.
3.
4.
Приглашаю всех высказываться в Комментариях. Критику и обмен опытом одобряю и приветствую. В хороших комментариях сохраняю ссылку на сайт автора!
И не забывайте, пожалуйста, нажимать на кнопки социальных сетей, которые расположены под текстом каждой страницы сайта.
Продолжение тут…