Was ist die einfachste Weise zu definieren, die setter und getter in Python
Was ist die einfachste Weise zu definieren, die setter und getter in Python? Gibt es so etwas in C#
public int Prop {get; set;}
Wie man es so machen? Da schreiben sowohl setter-und getter-Methoden für ein Objekt wie dieses ist nur zu viel Arbeit.
class MyClass():
def foo_get(self):
return self._foo
def foo_set(self, val):
self._foo = val
foo = property(foo_get, foo_set)
Vielen Dank im Voraus!
- Denke du meinst selbst._foo = val auf Linie 6.
- Gerade aktualisiert. Danke!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn die setter-und getter-tun nichts anderes, als der Zugriff auf eine zugrunde liegende Reale Attribut, dann ist die einfachste Art der Umsetzung ist nicht zu schreiben, setter und Getter auf alle. Dies ist das standard-Verhalten, und es gibt keinen Punkt im schreiben von Funktionen Nachbildung des Verhaltens das Attribut trotzdem.
Brauchen Sie nicht get-und Set-Methoden, um sicherzustellen Kapselung im Falle Ihrer access-Logik ändert, um etwas anderes als die standard-access-mechanik später, seit der Einführung einer Immobilie wird nicht brechen Ihrer Schnittstelle.
Python Ist Nicht Java. (Und nicht C# entweder, für diese Angelegenheit.)
In der Regel nicht schreiben setter/Getter an alle. Es gibt keinen Punkt, da python nicht verhindern, dass jemand Zugriff auf die Attribute direkt. Allerdings benötigen Sie Logik, die Sie verwenden können,
Eigenschaft
sKönnen Sie dann verwenden Sie diese Eigenschaft Methoden auf die gleiche Weise würden Sie einen grundlegenden Attribut-Wert:
property
ist ein builtin-Funktion in Python, siehe dieser link auf Sie. Es funktioniert ohne Klammern, so dass Sie beginnen können mit Sven ist der Vorzug, den nur mit dem Attribut, und ändern Sie es zu benutzen Getter und setter später.