У меня есть 2 модуля, каждый из которых содержит класс.
Моя основная программа создает экземпляр объекта класса One, который создает экземпляры многих объектов класса Two.
Мне нужно иметь возможность вызвать функцию класса 1 из экземпляров класса 2.
Это общий вид, что у меня есть:Как вы можете вызвать функцию создателя экземпляра в python?
модуль mod_one.py:
import mod_two
class One:
def __init__(self):
self.new_instance = Two()
def call_back_func(self):
# This function should be called
# from the new instance of class Two()
модуль mod_two.py:
class Two:
def __init__(self):
# Call call_back_func() of module mod_one
Единственный способ я нашел, чтобы передать функцию обратного вызова function call_back_func() в качестве аргумента для класса Two, например:
self.new_instance = Two(self.call_back_func)
, но я хотел бы знать, есть ли лучший способ сделать это.
Это совершенно правильный способ сделать это, поскольку он не вводит круговую зависимость. –
Я думаю, что прохождение 'self.call_back_func' конструктора - довольно хороший способ сделать это. – NPE