Getting Started With property()
00:00
Getting Started With Python’s property()
. As you’ve seen, Python’s property()
is the Pythonic way to avoid formal getter and setter methods in your code.
00:12
This function allows you to turn class attributes into properties or managed attributes. Since property()
is a built-in function, you can use it without importing anything. Additionally, property()
was implemented in C to ensure optimal performance.
00:28
Note that it’s common to refer to property()
as a built-in function. However, property
is a class designed to work as a function rather than as a regular class. That’s why most Python developers call it a function.
00:41
That’s also the reason why property()
doesn’t follow the Python convention for naming classes. This course follows the common practices of calling property()
a function rather than a class. With property()
, you can attach getter and setter methods to a given class attribute. This way, you can handle the internal implementation for that attribute without exposing getter and setter methods in your API.
01:07
You can also specify a way to handle attribute deletion and provide an appropriate docstring for your properties. On-screen, you can see the full signature of property()
.
01:20
The first two arguments take function objects that will play the role of getter (fget
) and setter (fset
) methods. fget
is a function that returns the value of the managed attribute, fset
is the function that allows you to set the value of the managed attribute, fdel
is a function to define how the managed attribute handles deletion, and doc
is a string representing the property’s docstring.
01:48
The return value of property()
is the managed attribute itself. If you access the managed attribute, as seen on-screen (obj.attr
), then Python will automatically call fget()
.
02:00
If you assign a new value to the attribute, again as seen on-screen (obj.attr = value
), then Python calls fset()
using the input value
as an argument.
02:08
Finally, if you delete it, as seen on-screen (del obj.attr
), then Python automatically calls fdel()
.
02:17
Note that the first three arguments to property()
take function objects. You can think of a function object as the function name without the calling pair of parentheses.
02:28
You can use doc
to provide an appropriate docstring for your properties. You and your fellow programmers will be able to read that docstring using Python’s help()
.
02:38
The doc
argument is also useful when you’re working with code editors and IDEs that support docstring access.
02:46
You can use property()
as either a function or a decorator to build your properties. In the next two sections of the course, you’ll see how to use both approaches, starting with using property()
as a function.
Become a Member to join the conversation.