【发布时间】:2012-03-12 05:31:37
【问题描述】:
有时我喜欢为对象编写 getter 属性,这样在第一次调用它们时,繁重的工作就完成一次,然后保存该值并在以后的调用中返回。在objective-c中,我会使用一个ivar或一个静态变量来保存这个值。比如:
- (id)foo
{
if ( _foo == nil )
{
_foo = // hard work to figure out foo
}
return _foo
}
这种相同的模式在 Python 中是否适用,或者是否有更可接受的方式来做到这一点?到目前为止,我的情况基本相同。我不喜欢我的解决方案的一点是,我的对象被值和这些值的 getter 弄乱了:
def foo(self):
if not hasattr(self, "mFoo":
self.mFoo = # heavy lifting to compute foo
return self.mFoo
【问题讨论】:
标签: python design-patterns getter