Возник следующий вопрос: как в методе класса задать в качестве аргументов его же атрибуты — но, что важно, в явном виде? Если глобально, то подоплёкой данного вопроса служит необходимость состыковать синтаксис класса с требованиями scipy.integrate.odeint'a.
Поясняю. У меня есть, для примера, класс Stuff с атрибутом Stuff.x. Я пишу для этого класса метод, который должен выдать мне правую часть ОДУ на переменную x:
def Stuff.dx_dt(...): return -2*x + t
Это ОДУ я хочу потом проинтегрировать с помощью scipy.integrate.odeint(…).
И тут возникает проблема: с одной стороны, мне нужно бы собрать все переменные и уравнения, относящиеся к Stuff, в один класс, а с другой стороны, odeint требует, чтобы dx_dt в явном виде зависела от x. То есть по факту мне нужно odeint(Stuff.dx_dt, Stuff.x , t), при том, что из аргументов у Stuff.dx_dt изначально есть только self.
Я нашла вопрос, похожий на мой, на Stackoverflow, но там решается скорее обратная задача, да и честно говоря, я не поняла идею: принципиально, почему слабые ссылки должны работать, а обычные не будут?
https://stackoverflow.com/questions/55413060/python-passing-functions-as-arguments-to-initialize-the-methods-of-an-object-p
Буду благодарна любым советам и идеям.