[PYTHON] Property Decorator verwenden?

Beim Definieren einer Eigenschaft in Python sehen die meisten Beispiele folgendermaßen aus:

property1


class Prop1(object):

    @property
    def x(self):
        '''x property'''
        return self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.deleter
    def x(self):
        del self._x

Mit diesem Eigenschaftsdekorateur kann jedoch nur Getter angegeben werden. Selbst wenn Sie dem Deleter einen Eigenschaftsdekorator wie unten gezeigt hinzufügen, ist der Deleter nicht definiert. (Setter / Getter ist definiert.)

property2


class Prop2(object):

    @property
    def x(self):
        del self._x

    @x.setter
    def x(self, value):
        self._x = value

    @x.getter
    def x(self):
        return self._x

Unabhängig vom Deleter scheint es zu vergessen, welcher der Setter und Getter den Eigenschaftsdekorateur haben soll. Andererseits fühlt es sich unangenehm an, sich wie folgt vollständig mit dem Dekorateur zu verabschieden.

property3


class Prop3(object):

    def getx(self):
        return self._x

    def setx(self, value):
        self._x = value

    def delx(self):
        del self._x

    x = property(getx, setx, delx, 'x property')

Wie wäre es also mit dem Schreiben, dass der Eigenschaftsdekorator nicht verwendet wird (als Funktion verwendet wird) + der Dekorator verwendet wird, um Getter / Setter / Deleter anzugeben?

property4


class Prop4(object):

    x = property(doc='x property')

    @x.setter
    def x(self, value):
        self._x = value

    @x.getter
    def x(self):
        return self._x

    @x.deleter
    def x(self):
        del self._x

Es fühlt sich jedoch so an, als würde man sich den Quellcode im Internet ansehen, und die Art und Weise, mit einem Immobiliendekorateur auf einem Getter zu schreiben, scheint die Mehrheit zu sein ...

Recommended Posts

Property Decorator verwenden?
Machen Sie einen Funktionsdekorateur
Fassen Sie Pythons @property Decorator zusammen
Mit Dekorateur dekorieren
[Python] Verwenden Sie eine Zeichenfolgenfolge
Verwenden Sie Remotte als Benutzer
Wie benutzt man den Dekorateur?
Einfach cProfile mit einem Dekorateur
Verwenden Sie bei Verwendung einer Eigenschaft eine Klasse, die ein Objekt erbt (Klasse neuen Stils).
Verwenden Sie DynamoDB als Sperrmanager
Verwenden Sie Pymol als Python-Bibliothek
[Überarbeiteter] Eigenschaftsdekorator, der Werte zwischenspeichert
Dekorateur 1
Verwenden Sie Blender als Python-Modul
Dekorateur 2
Erstellen Sie ein universelles Dekorationsframework für Python
Dekorateur
Verwenden Sie einen benutzerdefinierten Kernel mit WSL2
Dekorateur
Erstellen Sie mit Class einen Python-Funktionsdekorator
Verwenden Sie print in Python2 lambda expression
Verwenden Sie ein in PySpark geschultes Scikit-Lernmodell
Implementieren Sie einen benutzerdefinierten View Decorator mit Pyramid
Schreiben Sie eine kurze Eigenschaftsdefinition in Python
[IOS] Verwenden Sie gemeinsam genutzte Blätter mit Pythonista3.
Wenn der Budokan ein Mietbüroobjekt ist
Verwenden Sie Django aus einem lokalen Python-Skript
Um eine Diktat-Eigenschaft schreibgeschützt zu machen
Verwenden Sie Python 3 Subprocess.run () im CGI-Skript
Verwenden Sie WebDAV in einer Portable Docker-Umgebung