Heim >Backend-Entwicklung >Python-Tutorial >So verwenden Sie die Eigenschaftsfunktion in Python

So verwenden Sie die Eigenschaftsfunktion in Python

不言
不言Original
2018-06-04 16:24:062324Durchsuche

In diesem Artikel wird hauptsächlich die Verwendung der Eigenschaftsfunktion in Python vorgestellt und die Funktion, Parameter, Verwendung und zugehörigen Betriebsvorkehrungen der Eigenschaftsfunktion anhand von Beispielen analysiert

Die Beispiele in diesem Artikel werden erklärt. Erfahren Sie, wie Sie die Eigenschaftsfunktion in Python verwenden. Geben Sie es als Referenz an alle weiter. Die Details lauten wie folgt:

Wenn wir auf Attribute zugreifen und diese zuweisen, beschäftigen wir uns normalerweise direkt mit dem __dict__ der Klasse (Instanz) oder mit dem Datendeskriptor , usw. . Wenn wir diese Zugriffs- und Werteinstellungsmethoden jedoch standardisieren möchten, besteht eine Methode darin, einen komplexen Datendeskriptormechanismus einzuführen, und die andere ist wahrscheinlich die leichtgewichtige Datendeskriptorprotokollfunktion Property (). Seine Standarddefinition lautet:

+ property(fget=None,fset=None,fdel=None,doc=None)
+ Die ersten drei Parameter sind ungebundene Methoden, also sind sie kann eigentlich jede Klassenmitgliedsfunktion

property() sein. Die ersten drei Parameter entsprechen den Methoden __get__, __set__ und __del__ im Datendeskriptor Zuordnung zu Datendeskriptoren zwischen ihnen.

Zusammenfassend wird die Funktion property() hauptsächlich dazu verwendet, den Zugriff auf Klassenattribute zu standardisieren und die Werte von Klassenattributen zu ändern. Die Funktion

property() kann mit 0, 1, 2, 3 und 4 Parametern aufgerufen werden, und die Reihenfolge ist get, set, del, doc. Es gibt zwei Möglichkeiten,

property() zu implementieren, siehe Code

Die erste:

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

Laufergebnis:

(10, 20)
(100, 200)
100

Zweiter Typ: (Dekorateur)

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

Laufergebnis:

(10, 20)
(100, 200)
100

Das obige ist der detaillierte Inhalt vonSo verwenden Sie die Eigenschaftsfunktion in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn