English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python-intern definierte Funktionen
property() Konstruktor gibt property-Eigenschaft zurück.
Die Syntax von property() ist:
property(fget=None, fset=None, fdel=None, doc=None)
Empfohlene Lektüre: Python @property: Wie man es verwendet und warum?
property() nimmt vier Parameter:
fget (optional) -Funktion zum Abrufen des Attributwerts. Standardmäßig None.
fset (optional) -Funktion zum Setzen des Attributwerts. Standardmäßig None.
fdel (optional) -Funktion zum Löschen des Attributwerts. Standardmäßig None.
doc (optional) -Ein String, der die Dokumentation (docstring) der Eigenschaft enthält. Standardmäßig None.
property() gibt eine Attributeigenschaft zurück, die aus den gegebenen Getter, Setter und Deleter besteht.
Wenn keine Parameter angegeben werden, gibt property() eine grundlegende Eigenschaft zurück, die keinen Getter, Setter oder Deleter enthält.
Wenn nicht angegebendocproperty() verwendet die docstring der Getter-Funktion.
class Person: def __init__(self, name): self._name = name def get_name(self): print('den Namen abrufen:') return self._name def set_name(self, value): print('Den Namen auf: ' + value) self._name = value def del_name(self): print('den Namen löschen') del self._name # Die Verwendung von get_name und set_name zum Setzen der Eigenschaft # und del_name Methode name = property(get_name, set_name, del_name, 'Name property') p = Person('张三') print(p.name) p.name = '李四' del p.name
Ausgabenergebnis
den Namen abrufen: 张三 Setzen Sie den Namen auf: 李四 den Namen löschen
Hier,_nameWird verwendet, um zu speichernPersonPrivater Variablenname des Namens.
Wir haben auch eingerichtet:
get_name() ist die Methode zum Abrufen des Namens einer Person.
Die Methode set_name() wird verwendet, um den Namen einer Person zu setzen.
Die Methode del_name() dient zum Löschen des Namens einer Person.
Jetzt rufen wir die Methode property() auf, um einen neuen Attributnamen zu setzen.
Wie im Programm gezeigt, wird durch die Ausgabe im internen Bereich, die interne Referenz p.name, get name() als Getter, set name() als Setter und del name() als Deleter aufgerufen.
property() kann verwendet werdenPython-Decorator @property wird verwendet, um Getter, Setter und Deleter zu分配, anstatt zu verwenden.
class Person: def __init__(self, name): self._name = name @property def name(self): print('den Namen abrufen:') return self._name @name.setter def name(self, value): print('den Namen auf: ') + value) self._name = value @name.deleter def name(self): print('den Namen löschen') del self._name p = Person('王麻子') print('der Name ist:', p.name) p.name = '李二' del p.name
Ausgabenergebnis
den Namen abrufen: der Name ist: 王麻子 den Namen auf: 李二 setzen den Namen löschen
Hier verwenden wir property() nicht, sondern den @property-Decorator.
Zunächst bestimmen wir, dass die Methode name() auchPersonder Eigenschaft. Diese Operation kann durch die Verwendung der im Programm gezeigten Getter-Methode abgeschlossen werden.
Als nächstes verwenden wir den Attributnamen, um Setter und Deleter zu spezifizieren.
Dies wird durch die Verwendung der Methoden @name.settersetter und @name.deleterDeleter erreicht.
Beachten Sie, dass wir denselben Methodennamen mit verschiedenen Definitionen verwendet haben, um Getter, Setter und Deleter zu definieren.
Jetzt wird, egal zu jeder Zeit, wenn p.name verwendet wird, intern der geeignete Getter, Setter und Deleter aufgerufen, wie durch die im Methodeninneren angezeigte Ausgabe gezeigt.