Home  >  Article  >  Backend Development  >  How to use the property function in Python

How to use the property function in Python

不言
不言Original
2018-06-04 16:24:062232browse

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

Run result:

(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

Run result:

(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!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn