# -*- coding: utf-8 -*- # Способы импортирования кода # Импорт всего модуля как имени в пространство имен текущего модуля import module_1 # Импорт всего модуля с другим именем (синонимом) import module_1 as first_module # чаще всего используется для сокращения # или если в разных библиотеках есть модули с одинаковыми именами # Можно импортировать конкретный элемент в пространство имен текущего модуля from module_1 import function1, variable_1 function1() print(variable_1) # При таком импорте все равно выполняется весь пайтон-код импортируемого модуля # Можно импортировать конктретный элемент с другим именем (синонимом) from module_1 import function1 as f1, variable_1 as v1 f1() print(v1) # чаще всего используется если в разных модулях есть элементы с одинаковыми именами ### # Импортировать все имена из модуля в пространство имен текущего модуля from module_1 import * # Плохой стиль! потому что получается мешанина из собственных имен и имен в модуле # и все зависит от того что было определено позже
# -*- coding: utf-8 -*- # Модуль — это файл, содержащий определения и выражения на Python. # Именем файла является имя модуля с добавленным суффиксом .py # Так распространяется код пайтона - его библиотеки - в простейшем случае # Что бы иметь доступ к коду модуля из другого модуля надо его импортировать import module_1 # Это действие НЕ переводит имена определённых в модуле переменных в текущее пространство имен, # в нем появляется лишь имя модуля - module_1. Используя его вы можете получить доступ к коду: import module_1 print(module_1.variable_1) module_1.function1() # По факту module_1 - это переменная, указывающая на модуль # С помощью dir() можно получить список имен, определенных в модуле import module_1 print(dir(module_1)) ### # При импорте выполняются все операторы python. Если в модуле есть что-то, # кроме определения переменных и функция (в будущем - классов), # то этот код выполнится import module_2 ### # Внутри модуля, имя модуля (в качестве строки) доступно # в виде значения глобальной переменной с именем __name__.
def function4(): print('Я function4 из package_1.module_3 вызываю function1') function1()