Тринадцатое занятие углублённого курса: модуль как файл с функциями, import и from, защита if __name__ == "__main__", пространство имён модуля, импорт один раз, модуль подключает модуль; два модуля из своих функций и три программы, которые их подключают, — уроки 25–26 плана
Модуль — файл .py с функциями. Имя модуля — имя файла без .py: import mytools. Файл лежит в папке программы. При import модуль выполняется целиком, сверху вниз.
import mytools — функции через точку: mytools.digsum(n). from mytools import digsum — просто digsum(n), но имени mytools нет. import mytools as mt — mt.digsum(n).
if __name__ == "__main__": — блок работает, только когда запускают сам модуль. У запущенного файла __name__ равно "__main__", у подключённого — имя модуля.
У каждого модуля своё пространство имён: функция видит переменные своего модуля. k = 100 в программе не меняет k модуля; calc.k = 100 — меняет.
Модуль выполняется при первом import, дальше берётся уже загруженный. Модуль может подключать модуль: что он импортировал, то у него и есть.
Программа делится на части с ясным назначением; каждую пишут и проверяют отдельно, а подключают, а не копируют. Своё не называют именами библиотеки: random.py рядом заслонит настоящий random.
Тринадцатое занятие углублённого курса: модуль как файл с функциями, import и from, защита if __name__ == "__main__", пространство имён модуля, импорт один раз, модуль подключает модуль; два модуля из своих функций и три программы, которые их подключают, — уроки 25–26 плана
Модуль — файл .py с функциями. Имя модуля — имя файла без .py: import mytools. Файл лежит в папке программы. При import модуль выполняется целиком, сверху вниз.
import mytools — функции через точку: mytools.digsum(n). from mytools import digsum — просто digsum(n), но имени mytools нет. import mytools as mt — mt.digsum(n).
if __name__ == "__main__": — блок работает, только когда запускают сам модуль. У запущенного файла __name__ равно "__main__", у подключённого — имя модуля.
У каждого модуля своё пространство имён: функция видит переменные своего модуля. k = 100 в программе не меняет k модуля; calc.k = 100 — меняет.
Модуль выполняется при первом import, дальше берётся уже загруженный. Модуль может подключать модуль: что он импортировал, то у него и есть.
Программа делится на части с ясным назначением; каждую пишут и проверяют отдельно, а подключают, а не копируют. Своё не называют именами библиотеки: random.py рядом заслонит настоящий random.