Python使用@property装饰器
示例
的@property装饰可被用来定义在一个类中的方法,其作用象属性。一个可能有用的示例是在公开可能需要初始(昂贵)查找并随后需要简单检索的信息时。
给定一些模块foobar.py:
class Foo(object):
def __init__(self):
self.__bar= None
@property
def bar(self):
ifself.__baris None:
self.__bar= some_expensive_lookup_operation()
return self.__bar然后
>>> from foobar import Foo >>> foo = Foo() >>> print(foo.bar) #这将需要一些时间,因为初始化后bar为None 42 >>> print(foo.bar) #由于bar现在具有值,因此速度更快 42