Согласно этому сообщению:Какова ближайшая реализация scala '@transient lazy val' в Python?
Python memoising/deferred lookup property decorator
Мнемоника декоратор может быть использован, чтобы объявить ленивое свойство в классе. Существует даже «официальный» пакет, который может быть использован из коробки:
https://pypi.python.org/pypi/lazy
Однако оба этих реализаций имеют серьезные проблемы: любое сохраненные в памяти значения будет попытки мариноваться на питоне. Если эти значения являются неуправляемыми, это приведет к поломке программы.
Мой вопрос: есть ли простой способ реализовать декларацию «@transient lazy val» от scala без чрезмерного вмешательства? Это объявление должно помнить свойство в случае множественного вызова и отбрасывать его после сериализации класса/объекта.
Я думал об этом, но я не могу найти реализацию __getstate__ в суперкласс в качестве точки отсчета, плюс, точка декоратора является простота, если декоратор не может повлиять маринование композиции сама по себе, то я не думаю, что это очень удобный декоратор. – tribbloid
, как указано в документации на пикет Python: 'Если метода __getstate __() нет, то __dict__ экземпляра маринован. Таким образом, вы можете просто рассортировать/расклеивать суперкласс '__dict__' самостоятельно. Способность обрабатывать такие свойства только декораторами ... Хм, я не уверен в этом – agg3l