This article mainly introduces the usage of the property function in Python, and analyzes the function, parameters, usage and related operation precautions of the property function in the form of examples. Friends in need can refer to the following
Examples of this article Learn how to use the property function in Python. Share it with everyone for your reference, the details are as follows:
Usually when we access and assign attributes, we are directly dealing with the __dict__
of the class (instance), or with the data description Fu et al. are dealing with each other. But if we want to standardize these access and value setting methods, one method is to introduce a complex data descriptor mechanism, and the other is probably the lightweight data descriptor protocol function Property(). Its standard definition is:
property(fget=None,fset=None,fdel=None,doc=None)
The first three parameters are all unbound methods , so they can actually be any class member function
The first three parameters of the property() function correspond to __get__
and __set__
in the data descriptor respectively. , __del__
method, so there will be an internal mapping to data descriptors between them.
In summary, in fact, the property()
function is mainly used to standardize access to class attributes and modify the values of class attributes.
property()
The function can be called with 0, 1, 2, 3, and 4 parameters, and the order is get, set, del, doc. There are two ways to implement
property()
, see the code
##The first one:
#!/usr/bin/python #coding: utf-8 class Rectangle(object): def __init__(self, width, height): self.width = width self.height = height def getSize(self): return self.width, self.height def setSize(self, size): self.width, self.height = size def delSize(self): del self.height size = property(getSize, setSize, delSize, "实例对象") r = Rectangle(10, 20) # 输出此时矩形的长和宽 # 此时执行的是getSize print r.size # 修改size的值 # 此时执行的是setSize r.size = 100, 200 print r.size del r.height print r.width # height属性已经被删除,下面语句会报错 # print r.size
(10, 20) (100, 200) 100
Second type: (decorator)
#!/usr/bin/python #coding: utf-8 class Rectangle(object): def __init__(self, width, height): self.width = width self.height = height # 下面加@符号的函数名要相同 # 第一个是get方法 @property def Size(self): return self.width, self.height # 此处是set方法,是@property的副产品 @Size.setter def Size(self, size): # 此时接收的是一个元祖 self.width, self.height = size @Size.deleter def Size(self): del self.width del self.height r = Rectangle(10, 20) print r.Size r.Size = 100, 200 print r.Size del r.height # 由于上一步删除了self.height属性,所以下面再访问的时候会报错 # print r.Size # 可以访问width,还没有被删除 print r.width
(10, 20) (100, 200) 100
# #
The above is the detailed content of How to use the property function in Python. For more information, please follow other related articles on the PHP Chinese website!