Импорт модулей с помощью оператора import
Наиболее распространенный способ использования модуля — импортировать его с помощью оператора import. Это делает весь код модуля доступным для вашего текущего скрипта.
В проводнике файлов вы найдете пустой файл с именем main.py. Это будет наш основной скрипт для остальной части лабораторной работы.
Откройте main.py и добавьте следующую строку для импорта модуля hello:
import hello
print("The main.py script has finished.")
Сохраните файл. Теперь запустите main.py из терминала:
python3 main.py
Внимательно посмотрите на вывод:
This code runs on import or direct execution.
The main.py script has finished.
Обратите внимание, что была выполнена только первая инструкция print из hello.py. Код внутри блока if __name__ == "__main__": был пропущен. Это связано с тем, что когда main.py импортирует hello, переменной __name__ в контексте hello.py присваивается значение "hello" (имя модуля), а не "__main__". Эта особенность необходима для создания многократно используемых модулей, которые не вызывают нежелательных побочных эффектов при импорте.
Теперь давайте поработаем с модулем, который содержит не только операторы вывода. Откройте файл module_a.py. Он содержит переменную, функцию и класс.
PI = 3.14159
def greet(name):
print(f"Hello, {name} from module_a!")
class Calculator:
def add(self, x, y):
return x + y
Измените main.py так, чтобы он импортировал module_a и использовал его члены. Для доступа к члену импортированного модуля используется синтаксис module_name.member_name.
Замените содержимое main.py следующим:
import module_a
## Access the PI variable
print(f"The value of PI is {module_a.PI}")
## Call the greet function
module_a.greet("LabEx")
## Create an instance of the Calculator class and use its method
calc = module_a.Calculator()
result = calc.add(5, 3)
print(f"5 + 3 = {result}")
Сохраните файл и запустите его:
python3 main.py
Вывод будет следующим:
The value of PI is 3.14159
Hello, LabEx from module_a!
5 + 3 = 8
Это демонстрирует, как оператор import загружает весь модуль, и как вы получаете доступ к его содержимому, используя имя модуля в качестве префикса.