Heim  >  Artikel  >  Backend-Entwicklung  >  Ausführliche Erklärung zur Verwendung der Eigenschaftensyntax von Python

Ausführliche Erklärung zur Verwendung der Eigenschaftensyntax von Python

高洛峰
高洛峰Original
2017-03-26 18:56:472056Durchsuche

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:

Ausführliche Erklärung zur Verwendung der Eigenschaftensyntax von Python

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:

Ausführliche Erklärung zur Verwendung der Eigenschaftensyntax von Python

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!

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