There is a property syntax in Python, which is similar to C#'s get set syntax. Its functions have the following two points:
Set class methods as read-only properties;
Implement properties getter and setter methods;
The following focuses on these two points:
Set the class method as a read-only attribute
Please read the following code first
class Book(object): def __init__(self, title, author, pub_date): self.title = title self.author = author self.pub_date = pub_date @property def des_message(self): return u'书名:%s, 作者:%s, 出版日期:%s' % (self.title, self.author, self.pub_date)
In this code, use property as a decorator to modify the des_message function. Its function is to turn the function des_message into a property of the class, and it is read-only. The effect is as follows:
#As shown in the figure above, the method becomes a property, which can be accessed by accessing properties. But if you modify its value, an AttributeError error will be reported. It is read-only
Implement the getter and setter methods of the attribute
Then check the following code:
class Array(object): def __init__(self, length=0, base_index=0): assert length >= 0 self._data = [None for i in xrange(length)] self._base_index = base_index def get_base_index(self): return self._base_index def set_base_index(self, base_index): self._base_index = base_index base_index = property( fget=lambda self: self.get_base_index(), fset=lambda self, value: self.set_base_index(value) )
Here We set a base_index attribute for class Array, which uses property to implement the fget and fset functions of base_index. base_index is readable and writable. The effect is as follows:
As shown above As shown, base_index is readable and writable.
Finally
property is a good syntax feature of Python, and we should use it frequently in programming.
The above is the detailed content of Detailed explanation of how to use python's property syntax. For more information, please follow other related articles on the PHP Chinese website!