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

高洛峰
Freigeben: 2017-03-26 18:56:47
Original
2108 Leute haben es durchsucht

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)
Nach dem Login kopieren

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)
    )
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!