.py (например, my_module.py).import my_module.my_module.my_function().Создание собственного модуля в Python – это довольно простая и важная концепция.  Модуль, по сути, это просто файл с расширением .py, содержащий определения функций, классов, переменных или исполняемый код.
Вот как это сделать:
.py. Например, my_module.py.
            # my_module.py
            def greet(name):
                """Приветствует пользователя по имени."""
                return f"Привет, {name}!"
            def add(x, y):
                """Суммирует два числа."""
                return x + y
            my_variable = "Это переменная в модуле"
            class MyClass:
                def __init__(self, value):
                    self.value = value
                def describe(self):
                    return f"Это экземпляр MyClass со значением: {self.value}"
            
            # main.py
            import my_module
            # Используем функции и переменные из my_module
            result = my_module.greet("Алиса")
            print(result)  # Вывод: Привет, Алиса!
            sum_result = my_module.add(5, 3)
            print(sum_result)  # Вывод: 8
            print(my_module.my_variable) # Вывод: Это переменная в модуле
            instance = my_module.MyClass(10)
            print(instance.describe()) # Вывод: Это экземпляр MyClass со значением: 10
            from my_module import greet, add:  Импортирует только конкретные функции или переменные из модуля.  После этого их можно использовать напрямую, без префикса my_module.from my_module import *:  Импортирует все имена, определенные в модуле.  Использование этой формы обычно не рекомендуется, так как она может привести к конфликтам имен.import my_module as mm:  Импортирует модуль под псевдонимом mm.  Это полезно для сокращения имени модуля или для избежания конфликтов имен.  Например: mm.greet("Боб")PYTHONPATH (если она установлена).site-packages в вашей установке Python.PYTHONPATH или переместить его в каталог, где Python его найдет.Дополнительные советы:
__name__ == "__main__"::  Эта конструкция позволяет выполнять код только при непосредственном запуске файла (а не при его импорте как модуля).
            
            # my_module.py
            def my_function():
                print("Функция из my_module")
            if __name__ == "__main__":
                print("Этот код будет выполнен только при запуске my_module.py напрямую")
                my_function()
            В заключение, создание собственных модулей – это фундаментальный навык для организации кода в Python, делающий его более модульным, переиспользуемым и поддерживаемым.