всмысле в питоне существует только конкретный класс и питон не умеет сам вычленить класс предка?а давай ты почитаешь основы питона про ООП? по секрету, в разных ЯП разные реализации ООП, прикинь, да?
с 1к полей то мне их все прокидывать в конструкторнапример,
**dataclasses.asdict(instance)
book.shelf = BookShelfRef(name=shelf.name)
либо написать фабричный метод для подобных преобразований book.shelf = super(BookShelfRef,shelf)
вместо book.shelf = shelf
Полка книг наследуется от базового класса который не включается в себя список книг, специально для того чтобы книга могла ссылаться на полку, на которой находится.И из этого таки и не понятно, зачем делать все таки делать shelf: BookShelfRef а не shelf: BookShelf ? Она в обоих случаях на полку ссылается.