Хотя перезагрузка модулей python не сложна и уверяет вас, что новые объекты будут использовать новый код, проблема возникает с существующими объектами.
Возможно ли обновить существующие объекты, чтобы они использовали новый код?Можно предположить, что мы знаем, какие классы были изменены.
Тем не менее, возможно, что некоторые дополнительные функции были добавлены к __init__()
, поэтому простого копирования их словарей недостаточно.Одним из возможных решений, которое я рассмотрел, было обеспечение того, чтобы эти объекты можно было обновить, выполнив что-то вроде obj = MyClass(obj)
, что означает, что __init__
должно быть написано таким образом, чтобы оно не сломалось при вызове несколько раз.