【发布时间】:2009-10-21 00:51:30
【问题描述】:
我的 Python 类有一些变量需要在第一次调用时进行计算。后续调用应该只返回预先计算的值。
我不想浪费时间做这项工作,除非用户确实需要它们。 那么有没有一种干净的 Pythonic 方式来实现这个用例呢?
我最初的想法是第一次使用property()调用一个函数,然后覆盖变量:
class myclass(object):
def get_age(self):
self.age = 21 # raise an AttributeError here
return self.age
age = property(get_age)
谢谢
【问题讨论】:
-
你问的是记忆化吗? en.wikipedia.org/wiki/Memoization。这是很常见的 OO 设计模式。
标签: class variables python precompute