Когда вы делаете import program1, program2
в main.py
, вы получаете program1
и program2
переменные в вашем пространстве имен.Это объекты модуля, атрибутами которых будут глобальные переменные, определенные в других ваших файлах (включая функции, определенные на верхнем уровне).Вы не можете напрямую вызывать объект модуля, что и делает ваш текущий код.
Вместо:
detected = program1(image)
Вы должны сделать что-то вроде:
detected = program1.some_function(image)
Где some_function
- это имя любой функции, которую вы определили в файле program1
.Точно так же:
object_det = program2(object) #pass cropped object to recognizer
Вероятно, должно быть:
object_det = program2.some_other_function(object) #pass cropped object to recognizer
Независимо от того, следует ли использовать классы или нет, на самом деле это отдельное проектное решение, чтобы заставить импорт работать.Если простой вызов функции является подходящим интерфейсом для того, что каждый из ваших двух модулей делает с данными, которые вы отправляете, то нет необходимости добавлять сложную структуру ООП просто ради стиля.Но если у вас есть более сложные вещи, чем вы показали в своем примере, возможно, имеет смысл написать один или несколько классов.Однако без дополнительной информации мы не сможем дать более подробные предложения.