Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in die grundlegende Verwendung von Eigenschaftsdekoratoren in Python

Einführung in die grundlegende Verwendung von Eigenschaftsdekoratoren in Python

高洛峰
高洛峰Original
2017-03-08 11:16:051826Durchsuche

Der @property-Dekorator von Python wird verwendet, um eine Klassenmethode in einen Klasseneigenschaftsaufruf umzuwandeln, und dann erstellt @property selbst einen weiteren Dekorator, um der Eigenschaft mit einer Methode einen Wert zuzuweisen. Im Folgenden werden die Lese-/Schreibattribute sowie die schreibgeschützten und schreibgeschützten Attribute der Klasse festgelegt, nachdem @property in der Klasse verwendet wurde.

Die all-Methode legt ein Lese-/Schreibattribut fest. Sie können dieses Attribut festlegen oder lesen, wie in Zeile 28 gezeigt. Wenn die Methode __init__() nicht definiert ist, können Sie dieses Attribut nur zuerst festlegen. um dieses Attribut zu verwenden. Wenn Sie in Zeile 32 den Wert des Schreibattributs wissen möchten, wird ebenfalls ein Fehler gemeldet. In Zeile 34 gibt es keine Möglichkeit, dem schreibgeschützten Systemattribut weiterhin Werte zuzuweisen. Nach der Verwendung von @property können Python-„private Variablen“ natürlich nicht wirklich privat sein, aber sie können auch durch @property erreicht werden. Ich werde später lernen und schreiben.

class UseProperty(object):

    def __init__(self):
        self._all = 233

    @property
    def all(self):
        return self._all

    @all.setter
    def all(self, v):
        self._all = v

    @property
    def readonly(self):
        return self._all

    @property
    def write(self):
        raise AttributeError('This is not a readonly attribute.')

    @write.setter
    def write(self, value):
        self._write = value


p = UseProperty()
print p.all
p.all = 100
print p.all
p.write = 233
# print p.write
print p.readonly
# p.readonly = 10


Das obige ist der detaillierte Inhalt vonEinführung in die grundlegende Verwendung von Eigenschaftsdekoratoren in 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