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!