Using the property decorator

suggest change

The @property decorator can be used to define methods in a class which act like attributes. One example where this can be useful is when exposing information which may require an initial (expensive) lookup and simple retrieval thereafter.

Given some module foobar.py:

class Foo(object):
	def **init**(self):
		self.__bar = None
	
	@property
	def bar(self):
		if self.__bar is None:
			self.__bar = some\_expensive\_lookup\_operation()
		return self.__bar

Then:

>>> from foobar import Foo
>>> foo = Foo()
>>> print(foo.bar)  # This will take some time since bar is None after initialization
42
>>> print(foo.bar)  # This is much faster since bar has a value now
42

Feedback about page:

Feedback:
Optional: your email if you want me to get back to you:



Table Of Contents