In Python gibt es eine Eigenschaftssyntax, die der Get-Set-Syntax von C# ähnelt. Ihre Funktionen umfassen die folgenden zwei Punkte:
Klassenmethoden als schreibgeschützte Eigenschaften festlegen;
Implementieren Eigenschaften Getter- und Setter-Methoden;
Das Folgende konzentriert sich auf diese beiden Punkte:
Legen Sie die Klassenmethode als schreibgeschütztes Attribut fest
Bitte lesen Sie zunächst den folgenden Code
class Book(object): def __init__(self, title, author, pub_date): self.title = title self.author = author self.pub_date = pub_date @property def des_message(self): return u'书名:%s, 作者:%s, 出版日期:%s' % (self.title, self.author, self.pub_date)
In diesem Code wird die Eigenschaft als Dekorator verwendet, um die Funktion des_message zu dekorieren. Ihre Funktion besteht darin, die Funktion des_message in eine Eigenschaft der Klasse umzuwandeln, und sie ist schreibgeschützt. Der Effekt ist wie folgt:
Wie im Bild oben gezeigt, wird die Methode zu einer Eigenschaft, auf die durch Zugriff auf Eigenschaften zugegriffen werden kann. Wenn Sie jedoch seinen Wert ändern, wird ein AttributeError-Fehler gemeldet. Er ist schreibgeschützt.
Implementieren Sie die Getter- und Setter-Methoden des Attributs
Sehen Sie sich dann den folgenden Code an:
class Array(object): def __init__(self, length=0, base_index=0): assert length >= 0 self._data = [None for i in xrange(length)] self._base_index = base_index def get_base_index(self): return self._base_index def set_base_index(self, base_index): self._base_index = base_index base_index = property( fget=lambda self: self.get_base_index(), fset=lambda self, value: self.set_base_index(value) )
Hier legen wir ein base_index-Attribut für die Klasse Array fest, das die Eigenschaft fget und fset von base_index implementiert und lesbar und beschreibbar ist. Der Effekt ist wie folgt:
Wie in der Abbildung oben gezeigt, ist base_index lesbar und beschreibbar.
Schließlich
Eigenschaft ist eine gute Syntaxfunktion von Python, und wir sollten sie häufig in der Programmierung verwenden.
Das obige ist der detaillierte Inhalt vonAusführliche Erklärung zur Verwendung der Eigenschaftensyntax von Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!