Python Module: что это такое, как создавать и использовать

0
23

Содержание

Краткая памятка по работе с модулями

  1. Модуль — это файл.py с кодом для переиспользования.
  2. Импорт выполняется командой import имя_модуля.
  3. Для импорта части функционала используйте from модуль import объект.
  4. Псевдонимы задаются через as: import модуль as псевдоним.
  5. Пакет — это папка с модулями и файлом __init__.py.
  6. Сторонние библиотеки устанавливаются через pip install.
  7. Стандартная библиотека не требует установки.
  8. Создавайте собственные модули для повторяющихся задач.
  9. Используйте конструкцию if __name__ == ‘__main__’ для тестового кода.
  10. Избегайте конфликтов имен при импорте в глобальное пространство.
  11. Для копирования сложных объектов используйте модуль copy.
  12. Модуль unittest помогает писать и запускать тесты.
  13. Модуль csv упрощает работу с CSV-файлами.
  14. Модуль shutil предоставляет высокоуровневые операции с файлами.
  15. Модуль subprocess позволяет запускать системные команды.

Что такое модули и библиотеки в Python

Урок 16 - изображение номер один
Урок 16 — изображение номер один

Таблица №1

Термин Определение Физическое представление
Модуль Файл с кодом Python Файл с расширением.py
Пакет Группа модулей Директория с файлом __init__.py
Библиотека Коллекция пакетов и модулей Несколько связанных пакетов или модулей

Антон Викторов, Python-разработчик с опытом 8 лет Когда я только начинал работать с Python, я постоянно путался в терминологии. Помню свой первый серьезный проект — веб-скрапер для анализа данных. Я писал весь код в одном гигантском файле. Когда файл достиг 2000 строк, я понял, что зашел в тупик: поддерживать такой монолит было невозможно.

Переломный момент наступил, когда я разделил код на модули: парсер, анализатор, базу данных и интерфейс. Внезапно всё встало на свои места. Каждый модуль выполнял конкретную задачу, их было легко тестировать по отдельности. А когда потребовалось добавить новую функциональность — визуализацию данных — я просто подключил библиотеку matplotlib и создал ещё один модуль.

Этот опыт научил меня главному принципу Python: «Разделяй и властвуй». Сейчас я не представляю разработки без модульного подхода.

Программирование на - изображение номер два
Программирование на — изображение номер два

Python modules - изображение номер три
Python modules — изображение номер три

Что это такое

Python - изображение номер четыре
Python — изображение номер четыре

Модуль – кусок кода, который можно использовать в другом коде. В самом простом случае это файл. В любом проекте функциональность разбивается на куски, каждый кусок селится в свой модуль.

Всё, что устанавливается с помощью pip, представляет собой модули. Модули иерархические: ты можешь импортировать модуль markdown и пользоваться им, не зная, что внутри он импортирует ещё десяток других модулей: Питон сам всё разрулит.

Как работает под капотом

Tuples and - изображение номер пять
Tuples and — изображение номер пять

Важнее всего знать, как Питон выбирает файлы для импорта. Сначала он ищет подходящие файлы в рабочей директории, рядом с. Если не находит, то проходит по папкам в и ищет нужный файл.

Иногда бывает так, что нужный модуль находится вне тех папок, которые обходит Питон. Один из вариантов побороть это – вручную добавить нужный путь в (это список). Но это на крайний случай, обычно есть более красивые способы. Например, упаковать код в модуль и установить его с помощью pip. Так что тсс, я вам ничего не говорил.

В памяти все загруженные модули хранятся в. Иногда встречаются случаи, когда файла нет, а модуль есть. Это не сложно устроить:

Делать так незаконно: это неочевидно, затрудняет отладку и вредит читаемости. Не надо так.

Module and - изображение номер шесть
Module and — изображение номер шесть

34 - изображение номер семь
34 — изображение номер семь

Ключевые различия модулей и библиотек на практике

Модуль, пакет, библиотека, фреймворк: разбираемся в разнице - изображение номер восемь
Модуль, пакет, библиотека, фреймворк: разбираемся в разнице — изображение номер восемь

Хотя термины «модуль» и «библиотека» иногда используются взаимозаменяемо, между ними существуют фундаментальные различия, которые важно понимать для эффективного программирования на Python. 🧩

  • Масштаб и организация: Модули обычно решают узкоспециализированные задачи, в то время как библиотеки предоставляют широкий спектр функциональности через набор взаимосвязанных модулей.
  • Уровень абстракции: Модуль — это низкоуровневая единица организации кода, тогда как библиотека — высокоуровневая абстракция, которая может включать множество модулей, организованных в пакеты.
  • Установка: Модули могут быть простыми файлами.py, которые вы создаёте сами и добавляете в проект. Библиотеки обычно устанавливаются через менеджер пакетов pip.

На практическом уровне разница между модулями и библиотеками проявляется в том, как вы их используете в повседневной работе:

Таблица №2

Аспект Модули Библиотеки
Импорт import module import
Разработка Можно легко создавать собственные Обычно используются готовые
Зависимости Минимальные или отсутствуют Могут иметь сложные зависимости
Документация Часто ограничена докстрингами Обычно имеет подробную документацию
Примеры использования math, random, datetime NumPy, Pandas, Requests

Важно отметить, что в экосистеме Python существует определенная иерархия:

  1. Модуль — одиночный файл.py
  2. Пакет — директория с модулями и файлом __init__.py
  3. Библиотека — коллекция пакетов или модулей, решающая определенный класс задач
  4. Фреймворк — комплексная библиотека, предоставляющая архитектурные решения

На практике эта иерархия не всегда строго соблюдается. Например, некоторые популярные инструменты, такие как NumPy или Pandas, иногда называют как библиотеками, так и пакетами, хотя технически они являются пакетами, предоставляющими библиотеку функциональности.

Встроенные и сторонние библиотеки: обзор и функции

Use - изображение номер девять
Use — изображение номер девять

Python славится своей обширной экосистемой библиотек, которые можно разделить на две категории: встроенные (стандартная библиотека) и сторонние (устанавливаемые дополнительно). Это одно из главных преимуществ языка, воплощающее философию «батарейки включены». 🔋

Стандартная библиотека Python

Разные библиотеки - изображение номер десять
Разные библиотеки — изображение номер десять
  • os и sys — взаимодействие с операционной системой
  • datetime — работа с датами и временем
  • math — математические функции
  • random — генерация псевдослучайных чисел
  • json, csv, xml — работа с форматами данных
  • re — работа с регулярными выражениями
  • collections — специализированные типы данных
  • urllib и http — работа с сетью и HTTP
  • unittest — фреймворк для тестирования

Стандартная библиотека Python настолько обширна, что многие задачи можно решить, используя только ее возможности, особенно в области обработки текста, работы с файлами и базовых сетевых операций.

Сторонние библиотеки

Python-сообщество / - изображение номер одиннадцать
Python-сообщество / — изображение номер одиннадцать

Несмотря на богатство стандартной библиотеки, сила Python во многом заключается в обширной экосистеме сторонних библиотек, которые значительно расширяют возможности языка в специализированных областях.

Таблица №3

Область применения Популярные библиотеки Основные возможности
Обработка данных NumPy, Pandas Многомерные массивы, обработка табличных данных
Машинное обучение Scikit-learn, TensorFlow, PyTorch Алгоритмы ML, нейронные сети
Веб-разработка Django, Flask, FastAPI Создание веб-приложений и API
Визуализация Matplotlib, Seaborn, Plotly Построение графиков и диаграмм
Работа с сетью Requests, Beautiful Soup HTTP-запросы, парсинг веб-страниц
Автоматизация Selenium, PyAutoGUI Управление браузером, автоматизация GUI

Установка сторонних библиотек обычно производится с помощью pip — стандартного менеджера пакетов Python:

Для управления зависимостями проектов рекомендуется использовать виртуальные окружения (venv, virtualenv) или более продвинутые инструменты, такие как Poetry или Pipenv.

Мария Соколова, инженер по машинному обучению На заре своей карьеры я потратила две недели, пытаясь разработать алгоритм обработки изображений с нуля. Код получался громоздким, медленным и неточным. Мой руководитель тогда спросил: «А почему ты не используешь OpenCV?»

Я даже не знала о существовании такой библиотеки. После её установки задача, на которую я потратила две недели, была решена за два часа — и с гораздо лучшим результатом. Более того, встроенные алгоритмы OpenCV были оптимизированы экспертами и работали в десятки раз быстрее моего кода.

ЧИТАТЬ ТАКЖЕ:  Проверка делимости числа без остатка в Python: целочисленное деление и операторы

Этот случай научил меня важному правилу: прежде чем писать что-то с нуля, проверь, не решена ли уже эта задача в стандартной библиотеке или в популярных сторонних пакетах. В Python для большинства типичных задач уже существуют хорошо протестированные решения — нужно лишь знать, где их искать.

Определение и подключение модулей

Где хранятся модули в - изображение номер двенадцать
Где хранятся модули в — изображение номер двенадцать

Модуль в языке Python представляет отдельный файл с кодом, который можно повторно использовать в других программах.

*.py
Для создания модуля необходимо создать собственно файл с расширением, который будет представлять модуль. Название файла будет представлять название модуля. Затем в этом файле надо определить одну или несколько функций.

Допустим, основной файл программы называется. И мы хотим подключить к нему внешние модули.

Для этого сначала определим новый модуль: создадим в той же папке, где находится, новый файл, который назовем. По умолчанию интерпретатор Python ищет модули по ряду стандартных путей, один из которых — это папка главного, запускаемого скрипта. Поэтому, чтобы интерпретатор подхватил модуль, для простоты оба файла поместим в один проект.

Введение в - изображение номер тринадцать
Введение в — изображение номер тринадцать

message
Соответственно модуль будет называться. Определим в нем следующий код:

Здесь определена переменная hello и функция print_message, которая в качестве параметра получает некоторый текст и выводит его на консоль.

import
Для использования модуля его надо импортировать с помощью оператора, после которого указывается имя модуля: import message.

пространство имен message
Чтобы обращаться к функциональности модуля, нам нужно получить его. По умолчанию оно будет совпадать с именем модуля, то есть в нашем случае также будет называться.

Получив пространство имен модуля, мы сможем обратиться к его функциям по схеме

И после этого мы можем запустить главный скрипт, и он задействует модуль. В частности, консольный вывод будет следующим:

Как этим пользоваться

Использование модулей в - изображение номер четырнадцать
Использование модулей в — изображение номер четырнадцать

А рядом есть файл, в котором мы хотим загрузить данные из csv. Вот что в нём можно написать:

Есть ещё вариант from data_loaders import *, но он вне закона. Забудьте о нём.

Подключение функциональности модуля в глобальное пространство имен

Пространства имен - изображение номер пятнадцать
Пространства имен — изображение номер пятнадцать

from
Другой вариант настройки предполагает импорт функциональности модуля в глобальное пространство имен текущего модуля с помощью ключевого слова:

В данном случае мы импортируем из модуля message в глобальное пространство имен функцию print_message(). Поэтому мы сможем ее использовать без указания пространства имен модуля как если бы она была определена в этом же файле.

Все остальные функции, переменные из модуля недоступны (как например, в примере выше переменная hello). Если мы хотим их также использовать, то их можно подключить по отдельности:

*
Если необходимо импортировать в глобальное пространство имен весь функционал, то вместо названий отдельных функций и переменных можно использовать символ зводочки:

Но стоит отметить, что импорт в глобальное пространство имен чреват коллизиями имен функций. Например, если у нас том же файле определена функция с тем же именем до ее вызова, то будет вызываться функция, которая определена последней:

Таким образом, одноименная функция текущего файла скрывает функцию из подключенного модуля.

Установка псевдонимов

me - изображение номер шестнадцать
me — изображение номер шестнадцать

as
При импорте модуля и его функциональности мы можем установить для них псевдонимы. Для этого применяется ключевое слово, после которого указывается псевдоним. Например, установим псевдоним для модуля:

mes
В данном случае пространство имен будет называться, и через этот псевдоним можно обращаться к функциональности модуля.

Подобным образом можно установить псевдонимы для отдельной функциональности модуля:

Здесь для функции print_message из модуля message устанавливается псевдоним display, а для переменной hello — псевдоним welcome. И через эти псевдонимы мы сможем к ним обращаться.

Псевдонимы могут быть полезны, когда нас не устраивают имена функций и переменных, например, они слишком длинные, и мы хотим их сократить, либо мы хотим дать им более описательные, с нашей точки зрения, имена. Либо если в текущем файле уже есть функциональность с теми же именами, и с помощью установки псевдонимов мы можем избежать конфликта имен. Например:

Имя модуля

Python модули и пакеты, if name == \ - изображение номер семнадцать
Python модули и пакеты, if name == \ — изображение номер семнадцать

В данном случае в модуль для тестирования функциональности модуля добавлена функция main. И мы можем сразу запустить файл отдельно от всех и протестировать код.

__name__ __main__
Переменная указывает на имя модуля. Для главного модуля, который непосредственно запускается, эта переменная всегда будет иметь значение вне зависимости от имени файла.

Поэтому, если мы будем запускать скрипт отдельно, сам по себе, то Python присвоит переменной __name__ значение __main__, далее в выражении if вызовет функцию main из этого же файла.

Однако если мы будем запускать другой скрипт, а этот — — будем подключать в качестве вспомогательного, для переменная __name__ будет иметь значение message. И соответственно метод main в файле не будет работать.

Данный подход с проверкой имени модуля является более рекомендуемым подходом, чем просто вызов метода main.

В файле также можно сделать проверку на то, является ли модуль главным (хотя в прицнипе это необязательно):

Python предоставляет ряд встроенных модулей, которые мы можем использовать в своих программах. В следующих статьях рассмотрим основные из них.

Запуск модуля как скрипта

Python 036 - изображение номер восемнадцать
Python 036 — изображение номер восемнадцать

Когда Питон видит import data_loaders, он находит файл data_loaders.py и выполняет его. Реально выполняет: если в нём есть код, он будет выполнен. Даже если это не просто объявления функций, а их вызов. Представим, что когда мы писали код в data_loaders.py, мы его дебажили. Например, так:

Теперь если мы импортируем этот модуль (import data_loaders), девятая строка выполнится, файл загрузится и выведется на экран. А ведь в это не нужно! Можно этот код удалить, но тогда будет неудобно дорабатывать функцию load_from_json: при изменении надо будет добавлять отладочный принт, а потом удалять.

Иф на девятой строке значит “выполняй меня только если файл запущен напрямую, а не импортирован”. Теперь при запуске python data_loaders.py будет выполняться дебажная загрузка кода, а при импорте этого модуля – не будет. То, что надо.

__name__ – одна из переменных магических переменных. Их можно узнать по двойным подчёркиваниям по краям. Такие переменные доступны всегда и Питон запишет нужные значения в них за нас. В __name__ хранится название модуля, из которого был импортирован данный модуль. Если модуль выполняется напрямую, Питон запишет в эту переменную значение __main__ (доки). Хитро, а?

Подводные камни

Статьи / - изображение номер девятнадцать
Статьи / — изображение номер девятнадцать

Главный подводный камень – рекурсивный импорт. Это если мы импортируем data_loaders из bars, а для data_loaders нужен bars. Вот так:

Иногда бывает ещё веселее: когда импорты замыкаются в трёх и более файлах. Типа того:

Всё сломается так же, как в примере выше, но ещё и заставит поломать голову при починке.

Чинить такие случаи просто: разбивать код на максимально независимые модули. В примере выше, например, файлу зачем-то нужен. Так быть не должно: в должны жить максимально независимые общие функции, которые используются в других файлах. Не наоборот.

Как импортировать модули в проект: синтаксис и методы

Import module in - изображение номер двадцать
Import module in — изображение номер двадцать

Импорт модулей — это ключевой механизм, позволяющий использовать внешний код в ваших Python-программах. Python предлагает несколько способов импорта, каждый из которых имеет свои особенности и применение. 🔄

Основные способы импорта

Tutorial - изображение номер двадцать один
Tutorial — изображение номер двадцать один

В Python существует несколько синтаксических конструкций для импорта модулей:

  1. Импорт всего модуля: import module_name
  2. Импорт с переименованием: import module_name as alias
  3. Импорт конкретных элементов из модуля: from module_name import function, class_name
  4. Импорт всех элементов из модуля: from module_name import * (не рекомендуется)
  5. Импорт с переименованием элементов: from module_name import function as func
  6. Условный импорт: try: import module_name except ImportError: pass
ЧИТАТЬ ТАКЖЕ:  Пропуск шага в цикле for Python: срезы, iter и next, itertools и islice

Каждый из этих способов имеет свои преимущества и недостатки. Рассмотрим их на примерах:

# Импорт всего модуля import math result = (16) # Используем функцию с префиксом модуля # Импорт с переименованием import numpy as np array = ([1, 2, 3]) # Более короткое имя для часто используемого модуля # Импорт конкретных элементов from datetime import datetime, timedelta now = () tomorrow = now + timedelta(days=1) # Импорт с переименованием элементов from math import sqrt as square_root result = square_root(16) # Используем функцию под альтернативным именем

Особенности импорта пакетов

#6 - изображение номер двадцать два
#6 — изображение номер двадцать два

Импорт из пакетов имеет свои особенности. Пакет — это директория с модулями, и вы можете импортировать как весь пакет, так и отдельные модули из него:

# Импорт модуля из пакета import result = () # Импорт конкретной функции из модуля в пакете from import function result = function() # Импорт нескольких модулей из пакета from package import module1, module2

Правила импорта и наилучшие практики

Import модулей в - изображение номер двадцать три
Import модулей в — изображение номер двадцать три

При импорте модулей в Python следует придерживаться определённых правил для поддержания читаемости и производительности кода:

  • Порядок импорта: Стандартные библиотеки → сторонние библиотеки → локальные модули
  • Группировка: Импорты одного типа группируются вместе с пустой строкой между группами
  • Избегайте импорта from module import *, так как это засоряет пространство имён и может вызвать конфликты
  • Размещайте импорты в начале файла, а не внутри функций (за исключением случаев оптимизации времени импорта)
  • Используйте относительные импорты для модулей внутри пакета: from. import sibling

# Стандартная библиотека import os import sys from datetime import datetime # Сторонние библиотеки import numpy as np import pandas as pd from sklearn.model_selection import train_test_split # Локальные модули from.config import settings from.utils import helpers

Создание собственных модулей для оптимизации кода

Create and import a - изображение номер двадцать четыре
Create and import a — изображение номер двадцать четыре

Создание собственных модулей — один из важнейших навыков для развития как Python-разработчика. Это не только повышает организацию кода, но и позволяет легко переиспользовать функциональность между проектами. 📦

Основы создания модулей

How - изображение номер двадцать пять
How — изображение номер двадцать пять

Создать модуль в Python исключительно просто — достаточно написать код в файле с расширением.py. Однако для создания качественного, многоразового модуля стоит придерживаться определённых практик:

  1. Чёткое назначение: каждый модуль должен иметь единую цель или тему
  2. Документация: используйте докстринги для описания модуля в целом и его компонентов
  3. Инкапсуляция: используйте префикс подчёркивания (_) для «приватных» функций и переменных
  4. Тестируемость: разделяйте логику и интерфейс пользователя для возможности модульного тестирования

# «»»Модуль для вычисления площади и периметра геометрических фигур.»»» import math def square_area(side_length): «»»Вычисляет площадь квадрата. Args: side_length: длина стороны квадрата Returns: float: площадь квадрата «»» return side_length ** 2 def square_perimeter(side_length): «»»Вычисляет периметр квадрата.»»» return 4 * side_length def circle_area(radius): «»»Вычисляет площадь круга.»»» return * radius ** 2 def circle_circumference(radius): «»»Вычисляет длину окружности.»»» return 2 * * radius # Блок для запуска модуля как самостоятельной программы if __name__ == «__main__»: print(f»Площадь квадрата со стороной 5: {square_area(5)}») print(f»Площадь круга радиусом 3: {circle_area(3)}»)

Создание пакетов

Урок 12 - изображение номер двадцать шесть
Урок 12 — изображение номер двадцать шесть

Когда количество модулей растёт или логика усложняется, имеет смысл организовать код в пакеты. Для создания пакета необходимо:

  1. Создать директорию с именем пакета
  2. Разместить в ней модули (.py файлы)
  3. Создать файл __init__.py (может быть пустым в Python 3+)

# __init__.py «»»Пакет для работы с геометрическими фигурами.»»» # Импортируем и делаем доступными наиболее используемые функции from.shapes import Square, Circle, Triangle from.calculations import calculate_area, calculate_perimeter # Определяем, какие имена будут доступны при импорте через from geometry_package import * __all__ = [‘Square’, ‘Circle’, ‘Triangle’, ‘calculate_area’, ‘calculate_perimeter’] # Метаданные пакета __version__ = ‘0.1.0’ __author__ = ‘Your Name’

Распространение и использование модулей

Modules in - изображение номер двадцать семь
Modules in — изображение номер двадцать семь
  • Локальное использование: размещение в том же каталоге или проекте
  • Установка в систему: создание установочного пакета с
  • Публикация в PyPI: размещение в общедоступном репозитории для установки через pip
  • Приватные репозитории: размещение в корпоративных репозиториях для внутреннего использования

from setuptools import setup, find_packages setup(name=»geometry_tools», version=»0.1.0″, packages=find_packages(), install_requires=[«matplotlib>=3.0.0″, # Зависимости, если есть], author=»Your Name», author_email=»@», description=»A package for geometric calculations», keywords=»geometry, math, calculations», url=»», classifiers=[«Programming Language:: Python:: 3», «License:: OSI Approved:: MIT License», «Operating System:: OS Independent»,], python_requires=»>=3.6″,)

Модули и библиотеки — это фундамент чистого, поддерживаемого и эффективного кода на Python. Умение создавать собственные модули, грамотно организовывать код в пакеты и эффективно использовать существующие библиотеки — навыки, отличающие профессионала от новичка. Не пытайтесь «изобретать велосипед» там, где существуют проверенные решения, но и не бойтесь создавать собственные абстракции, когда стандартные инструменты не соответствуют вашим потребностям. Баланс между использованием существующего кода и разработкой своих компонентов — ключ к продуктивной работе с Python.

Модуль csv — чтение и запись CSV файлов

Модуль csv python 3 - python для начинающих - изображение номер двадцать восемь
Модуль csv python 3 — python для начинающих — изображение номер двадцать восемь

Формат CSV (Comma Separated Values) является одним из самых распространенных форматов импорта и экспорта электронных таблиц и баз данных. CSV использовался в течение многих лет до того, как был стандартизирован в RFC 4180. Запоздание четко определенного стандарта означает, что в данных, создаваемых различными приложениями, часто существуют незначительные различия. Эти различия могут вызвать раздражение при обработке файлов CSV из нескольких источников. Тем не менее, хотя разделители, символы кавычек и некоторые другие свойства различаются, общий формат достаточно универсален. Значит, возможно написать один модуль, который может эффективно манипулировать такими данными, скрывая детали чтения и записи данных от программиста.

Модуль shutil

является вложенным модулем в модуль os, и реализует некоторые полезные функции для работы с путями.

Модуль unittest: тестируем свои программы

The unittest - изображение номер тридцать
The unittest — изображение номер тридцать

Представьте, что вы написали какую-либо программу, а теперь хотите проверить, правильно ли она работает. Что вы для этого сделаете? Скорее всего, вы запустите её несколько раз с различными входными данными, и убедитесь в правильности выдаваемого ответа.

А теперь вы что-то поменяли и снова хотите проверить корректность программы. Запускать ещё несколько раз? А если потом снова что-то поменяется? Нельзя ли как-то автоматизировать это дело?

Оказывается, можно. В Python встроен модуль unittest, который поддерживает автоматизацию тестов, использование общего кода для настройки и завершения тестов, объединение тестов в группы, а также позволяет отделять тесты от фреймворка для вывода информации.

Модуль subprocess

Модуль subprocess отвечает за выполнение следующих действий: порождение новых процессов, соединение c потоками стандартного ввода, стандартного вывода, стандартного вывода сообщений об ошибках и получение кодов возврата от этих процессов.

Модуль glob

Как использовать модуль glob в - изображение номер тридцать два
Как использовать модуль glob в — изображение номер тридцать два

Модуль glob находит все пути, совпадающие с заданным шаблоном в соответствии с правилами, используемыми оболочкой Unix. Обрабатываются символы «*» (произвольное количество символов), «?» (один символ), и диапазоны символов с помощью []. Для использования тильды «~» и переменных окружения необходимо использовать () и ().

Модуль copy — поверхностное и глубокое копирование объектов

Модуль functools — сборник функций высокого уровня: взаимодействующих с другими функциями или возвращающие другие функции.

Часто задаваемые вопросы о модулях в Python

Вопрос: Что такое модуль в Python простыми словами?
Ответ: Это файл с расширением.py, содержащий код (функции, классы, переменные), который можно переиспользовать в других программах.

Вопрос: Чем модуль отличается от библиотеки?
Ответ: Библиотека — это более широкое понятие, часто обозначающее набор связанных модулей и пакетов, решающих определенную задачу.

Вопрос: Как импортировать только одну функцию из модуля?
Ответ: Используйте синтаксис: from имя_модуля import имя_функции.

Вопрос: Что такое __name__ == ‘__main__’?
Ответ: Это конструкция, позволяющая выполнять код только при прямом запуске файла, а не при его импорте.

Вопрос: Как создать свой собственный модуль?
Ответ: Сохраните код в файл с расширением.py и импортируйте его по имени файла (без расширения).

Вопрос: Что такое пакет в Python?
Ответ: Это директория, содержащая файл __init__.py и несколько модулей, объединенных общей тематикой.

Вопрос: Как установить стороннюю библиотеку?
Ответ: Используйте менеджер пакетов pip: pip install имя_библиотеки.

Вопрос: Что такое глобальное пространство имен при импорте?
Ответ: Это область видимости, куда попадают имена импортированных объектов, что может привести к конфликтам имен.

Вопрос: Как посмотреть список всех встроенных модулей?
Ответ: Выполните в интерпретаторе команду help(‘modules’) или импортируйте sys и выведите sys.builtin_module_names.

Вопрос: Что делает модуль copy?
Ответ: Предоставляет функции для поверхностного (copy.copy) и глубокого (copy.deepcopy) копирования объектов.