Я пишу класс в python, и у меня есть атрибут, который займет относительно много времени для вычисления, поэтому Я только хочу сделать это один раз. Кроме того, он не понадобится каждому экземпляру класса, поэтому Я не хочу это делать по умолчанию в __init__
.«Кэширование» атрибутов классов в Python
Я новичок в Python, но не для программирования. Я могу придумать способ сделать это довольно легко, но я снова и снова обнаружил, что способ «что-то делать» Pythonic часто намного проще, чем то, что я придумываю, используя свой опыт на других языках.
Есть ли «правильный» способ сделать это в Python?
IMO ни один из этих ответов не верен. OP хотел получить кешированное свойство _class_, например 'Foo.something_expensive'. Все эти ответы касаются свойств кэшированного _instance_, что означает, что 'something_expensive' будет пересчитан для каждого нового экземпляра, который в большинстве случаев является менее оптимальным. – steve