Я хотел бы написать модель, в которой разные классы, хранящиеся в разных файлах, обмениваются информацией.Python: Взаимодействующие атрибуты объекта
К примеру, у меня есть главный-файл, который будет в конечном итоге выполнить модель
--main.py
from solution import Solver
solver = Solver()
solver.create()
Там также два больше файлов/классов, которые должны впоследствии обмениваться информацией:
--solution.py
from grid import Remap
remap = Remap()
class Solver:
def __init__(self):
self.solve = 4
def create(self):
remap.method1()
self.solve += remap.x+remap.y
print self.solve
--grid.py
class Remap:
def __init__(self):
self.x = 0
self.y = 0
def method1(self):
self.x += 1
self.y += 2
Это работает до сих пор и, кажется, довольно легко.
Теперь я хотел бы добавить еще один метод к grid.py/Remap, который использует текущий атрибут решить из другого класса Solver. Например:
--grid.py
class Remap:
def __init__(self):
self.x = 0
self.y = 0
def method1(self):
self.x += 1
self.y += 2
def method2(self):
self.x = ?????.solve
Но как я могу получить обновленный атрибут из одного класса в другой, которые в зависимости друг от друга, и избежать циклических зависимостей. Должен ли я использовать внешние глобальные классы (они действительно существуют в Python?)?
Не могли бы вы объяснить немного больше о том, что этот код должен делать? Не могли бы вы сделать объект 'Solver' аргументом * * для' Remap.method2() '? – jonrsharpe
Я действительно хочу создать объект, который можно применить к разному классу. В C++ существует возможность объявить экземпляр extern в заголовочном файле, «extern Solver * solver;». Наверное, это то, что я хочу сделать в Python ?! – Jan87
Это не очень объясняет - не могли бы вы предоставить менее абстрактные примеры использования? – jonrsharpe