Creating properties
A property is a method function that appears (syntactically) to be a simple attribute. We can get, set, and delete property values similarly to how we can get, set, and delete attribute values. There's an important distinction here. A property is actually a method function and can process, rather than simply preserve, a reference to another object.
Besides the level of sophistication, one other difference between properties and attributes is that we can't attach new properties to an existing object easily; however, we can add attributes to an object easily, by default. A property is not identical to simple attributes in this one respect.
There are two ways to create properties. We can use the @property
decorator or we can use the property()
function. The differences are purely syntactic. We'll focus on the decorator.
We'll take a look at two basic design patterns for properties:
Eager calculation: In this design pattern, when we set a value via a property, other attributes...