Я пишу (на Python) функцию для импорта и использования в другой программе. Эта функция принимает в качестве входных данных стандартные структуры данных Python, например список строк, и выводит массив numpy на основе входных данных. Вот как это выглядит по сути:
Код: Выделить всё
# my_function.py
import numpy as np
def my_function(my_list: list[str]) -> np.darray:
# transform my_list into appropriate format
my_array = np.array(my_list)
return my_array
Затем я хочу включить эту функцию в другую программу, которая, скажем, создает список строк и преобразует его в числовой массив, например,
Код: Выделить всё
# my_program.py
from my_function import *
def main() -> None:
user_list = ['A', 'B', 'C']
array_output = my_function(user_list)
Как лучше всего (в общей разработке программного обеспечения/Python) сделать что-то подобное? Есть ли способ гарантировать, что numpy будет включен в my_program.py при импорте функции, даже если пользователь ее не импортирует? Кроме того, когда модуль импортируется, что, если пользователь импортирует numpy с помощью команды import numpy без псевдонима? Будет ли Python импортировать его снова в другое... пространство имен? Я не уверен, правильно ли я там использовал пространство имен.
P.S. Я доктор математических наук. студент пытается освоить правильные методы разработки программного обеспечения в одиночку для контекста.
Подробнее здесь:
https://stackoverflow.com/questions/798 ... d-party-mo