Maison  >  Article  >  développement back-end  >  Comment utiliser la fonction de propriété en Python

Comment utiliser la fonction de propriété en Python

不言
不言original
2018-06-04 16:24:062298parcourir

Cet article présente principalement l'utilisation de la fonction de propriété en Python et analyse la fonction, les paramètres, l'utilisation et les précautions de fonctionnement associées de la fonction de propriété sous forme d'exemples. Les amis dans le besoin peuvent se référer à ce qui suit

<.>Les exemples de cet article sont expliqués. Apprenez à utiliser la fonction de propriété en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

Habituellement, lorsque nous accédons et attribuons des attributs, nous traitons directement du

de la classe (instance), ou du descripteur de données , etc. . Mais si nous voulons standardiser ces méthodes d'accès et de définition de valeurs, une méthode consiste à introduire un mécanisme de descripteur de données complexe, et l'autre est probablement la fonction légère du protocole de descripteur de données Property(). Sa définition standard est : __dict__

+

property(fget=None,fset=None,fdel=None,doc=None)
+ Les trois premiers paramètres sont des méthodes non liées, elles peut en fait être n'importe quelle fonction membre de la classe

property() fonction Les trois premiers paramètres correspondent respectivement aux méthodes

, __get__ et __set__ dans le descripteur de données. mappage aux descripteurs de données entre eux. __del__

En résumé, la fonction

est principalement utilisée pour standardiser l'accès aux attributs de classe et modifier les valeurs des attributs de classe. La fonction property()

peut être appelée avec les paramètres 0, 1, 2, 3 et 4, et l'ordre est get, set, del, doc. Il existe deux façons d'implémenter property()

, voir le code property()

La première façon :

#!/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

Résultat de l'exécution :

(10, 20)
(100, 200)
100

Deuxième type : (décorateur)

#!/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

Résultat de l'exécution :

(10, 20)
(100, 200)
100

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn