import
или from ... import
. Например:
# my_module.py
def my_function():
return "Привет!"
# main.py
import my_module
print(my_module.my_function())
# Или
from my_module import my_function
print(my_function())
Чтобы использовать функции из собственного модуля в другом файле на Python, необходимо выполнить несколько шагов:
.py
, содержащий определения функций, классов или переменных. Например, создадим файл my_module.py
с таким содержимым:
# my_module.py
def greet(name):
"""Приветствует пользователя по имени."""
return f"Привет, {name}!"
def add(x, y):
"""Складывает два числа."""
return x + y
import
. Существует несколько способов импорта:
# main.py
import my_module
result = my_module.add(5, 3)
greeting = my_module.greet("Alice")
print(result) # Вывод: 8
print(greeting) # Вывод: Привет, Alice!
В этом случае доступ к функциям модуля осуществляется через имя модуля, например, my_module.add()
.
# main.py
from my_module import add, greet
result = add(5, 3)
greeting = greet("Alice")
print(result) # Вывод: 8
print(greeting) # Вывод: Привет, Alice!
Здесь импортируются только функции add
и greet
. Можно использовать их напрямую, без указания имени модуля.
# main.py
from my_module import *
result = add(5, 3)
greeting = greet("Alice")
print(result) # Вывод: 8
print(greeting) # Вывод: Привет, Alice!
Импортирует все определения из модуля. Не рекомендуется, так как может привести к конфликтам имен, если в разных модулях есть функции с одинаковыми именами.
# main.py
import my_module as mm
result = mm.add(5, 3)
greeting = mm.greet("Alice")
print(result)
print(greeting)
Позволяет использовать более короткое имя для модуля.
PYTHONPATH
.PYTHONPATH
. В качестве альтернативы можно добавить путь к модулю программно, используя sys.path.append()
:
# main.py
import sys
import os
# Получаем абсолютный путь к директории, где находится main.py
current_dir = os.path.dirname(os.path.abspath(__file__))
# Путь к директории, где находится my_module.py (предположим, что она на уровень выше)
module_dir = os.path.join(current_dir, '..') # Переход на уровень вверх
# Добавляем путь к sys.path, если он еще не добавлен
if module_dir not in sys.path:
sys.path.append(module_dir)
import my_module
result = my_module.add(5, 3)
greeting = my_module.greet("Alice")
print(result)
print(greeting)
Важно: В этом примере предполагается, что my_module.py
находится в родительской директории от main.py
. Необходимо адаптировать путь в module_dir
в соответствии с фактическим расположением вашего модуля.
В целом, наиболее рекомендуемым является способ с использованием import my_module
или from my_module import specific_function
, так как они обеспечивают лучшую читаемость и предотвращают конфликты имен.