Weisen Sie dem Python-Objekt einen anderen Wert zu

Joe

Ich möchte eine Python-Klasse mit dem Namen "Foo" erstellen, die ein Attribut namens "x" hat, das ein int mit dem Standardwert 0 ist. Wenn ich x einen positiven Wert zuweise, ändert sich dieser automatisch in 10 und wenn ich ein Negativ zuweise Wert, den es auf -10 ändern würde. zum Beispiel:

>>p = Foo()
>>print(p.x)
0
>>p.x = -45
>>print(p.x)
-10
>>p.x = 85
>>print(p.x)
10
Aviv Yaniv

Verwenden Sie den propertyDekorateur:

Sie definieren zuerst _xals Klassenmitglied im Konstruktor:

    def __init__(self):
        self._x = 0

und initialisiere es mit 0.

Dann definieren Sie xals Eigenschaft:

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

Dies bedeutet, dass wir die Werte von _xdurch den Namen erhalten können x.

Dann definieren Sie Setter für xmit @x.setter:

    @x.setter
    def x(self, value):
        self._x = 10 if value > 0 else (-10 if value < 0 else 0)

Dies überschreibt die ursprüngliche Logik zum Festlegen des Werts auf xdie von Ihnen definierte.

ACHTUNG: _xist immer noch verfügbar , und wenn Sie es ändern, hält die oben definierte Magie nicht an (es gibt keine privateKlassenmitglieder wie in anderen Sprachen wie C, C ++, C #, Java usw.). Dinge, die _konventionell beginnen, bedeuten, dass sie von internem Nutzen sind.

Code:

class Foo(object):
    def __init__(self):
        self._x = 0

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

    @x.setter
    def x(self, value):
        self._x = 10 if value > 0 else (-10 if value < 0 else 0)

p = Foo()
# 0
print(p.x)

p.x = -45
# -10
print(p.x)

p.x = 85
# 10
print(p.x)

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Weisen Sie einem Objekt in einem anderen Objekt, dem dynamisch Schlüssel zugewiesen wurden, einen Wert zu

Weisen Sie dem Objekt mit Ausdruck einen Wert zu

So weisen Sie dem Funktionsparameter in Python einen Wert zu

Weisen Sie dem verschachtelten Objekt einen Wert zu, indem Sie den Wert von einem Geschwister verwenden

Weisen Sie dem Array einen Wert zu

Weisen Sie der Datenbank basierend auf dem in einer anderen Datenbank gespeicherten Wert einen neuen Wert zu

Weisen Sie dem untergeordneten Objekt einen Wert zu und behandeln Sie die Listenobjektwerte object

Weisen Sie einen Wert von einem anderen Objekt innerhalb desselben Objekts zu

Weisen Sie dem "Fenster" -Objekt im Browser einen neuen Wert zu. Funktioniert das nicht?

Weisen Sie einen Wert basierend auf dem nächsten Nachbarn aus einem anderen Datenrahmen zu

Weisen Sie dem Benutzer einen Wert aus einem anderen Zeilenwert zu

Weisen Sie Duplikaten in Python einen Wert zu

Weisen Sie den Wert dem Objekt in PHP zu

Weisen Sie der Variablen einen Wert zu und verwenden Sie ihn in einer anderen Variablen in Python

So weisen Sie einem Objekt in r einen cat () -Wert zu

Weisen Sie einem neuen Objekt durch Destrukturierung einen Wert zu

Holen Sie sich den gleichen Wert aus einem anderen Array und weisen Sie es dem Objekt von Arrays zu

So weisen Sie jedem Schalter in HTML einen anderen Wert zu

So weisen Sie einer Variablen einen anderen Wert in clojure zu

Weisen Sie einer Dropdown-Auswahl einen anderen Wert zu

Weisen Sie der Zufallsstichprobe einer Gruppe einen Wert zu, wobei die Stichprobengröße dem Wert einer anderen Spalte entspricht

Weisen Sie der Variablen einen JSON-Wert basierend auf dem Wert eines anderen Schlüssels zu

Weisen Sie dem Datentyp int einen großen Wert zu

Weisen Sie dem an eine Funktion übergebenen Array einen Wert zu

Weisen Sie dem Untertensor in Pytorch einen Wert zu

Weisen Sie dem Kontrollkästchen einen Wert vom Endpunkt zu

So weisen Sie dem Byte-Array einen Wert zu

So weisen Sie dem Strukturabschnitt einen Wert zu

Weisen Sie dem übergeordneten Golang-Strukturfeld einen Wert zu

TOP Liste

heißlabel

Archiv