Heim >Backend-Entwicklung >Python-Tutorial >Wie implementiert man Getter und Setter pythonisch?

Wie implementiert man Getter und Setter pythonisch?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-14 11:50:17431Durchsuche

How to Pythonically Implement Getters and Setters?

Pythonische Praxis für Getter und Setter

Bei der Arbeit mit Getter- und Setter-Methoden in Python ist es wichtig, einen pythonischen Ansatz zu übernehmen, der darauf abgestimmt ist die Best Practices der Sprache. Anstatt explizite get_property()- und set_property()-Methoden zu verwenden, die eine manuelle Implementierung erfordern:

def set_property(property, value):  
def get_property(property):  

Oder direktes Festlegen und Abrufen von Attributen über Objekteigenschaften:

object.property = value  
value = object.property

Die bevorzugte Pythonic-Methode verwendet Eigenschaftsdekoratoren, um Getter und Setter zu definieren. Diese Technik bietet eine übersichtliche und intuitive Schnittstelle für den Zugriff auf Instanzvariablen.

Property Decorators:

class C(object):
    def __init__(self):
        self._x = None

    @property
    def x(self):
        """I'm the 'x' property."""
        print("getter of x called")
        return self._x

    @x.setter
    def x(self, value):
        print("setter of x called")
        self._x = value

    @x.deleter
    def x(self):
        print("deleter of x called")
        del self._x

Verwendung:

Erstellen Sie eine Instanz der Klasse:

c = C()

Legen Sie die fest Eigenschaft:

c.x = 'foo'  # setter called

Eigenschaft abrufen:

foo = c.x    # getter called

Eigenschaft löschen:

del c.x      # deleter called

Durch den Einsatz der Eigenschaftsdekoratoren von Python können Sie Getter- und Setter-Funktionalität erreichen mit einer pythonischeren und eleganteren Syntax, die die Klarheit des Codes beibehält und die Eigenschaftsverwaltung vereinfacht.

Das obige ist der detaillierte Inhalt vonWie implementiert man Getter und Setter pythonisch?. 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