Was genau macht + = in Python?
Muss ich wissen, was += wird in python. So einfach ist das. Ich würde auch schätzen links zu Definitionen von anderen kurzer hand tools in python.
Kommentar zu dem Problem
es ist ein basic operator für python (und anderen Sprachen auch), beginnen Sie mit google, wenn Sie nie Lesen Sie die python-Referenzen.
@AndiDog obwohl es stimmt, beide Fragen sind über den operator ( + = ), die, die Sie verknüpft ist, über eine anspruchsvolle Nutzung und subtilen problem, und die OP ist hier wohl nicht mehr Folgen-die überlegung gibt es (noch) nicht.
@Belisar: ich nahm die Frage wörtlich - es enthält das Wort "genau". Das ist, warum ich schlug die andere Frage. Ich denke, es ist völlig klar, was
+=
tut Sie, aber nicht wie es funktioniert unter der Haube. @AndiDog Vielleicht waren Sie damals, aber ein Blick auf die (fast) akzeptierte Lösungen hier, ist klar, dass diese Frage über ein grundlegendes Verständnis des Betreibers 😀
InformationsquelleAutor der Frage Salvatore Mucciolo | 2011-01-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
In Python, += ist der Zucker-Beschichtung für die
__iadd__
spezielle Methode, oder__add__
oder__radd__
wenn__iadd__
ist nicht vorhanden. Die__iadd__
Methode einer Klasse alles tun kann, was er will. Das list-Objekt implementiert und verwendet Sie zum Durchlaufen einer wiederholenden Objekt Anhängen jedes element zu sich selbst in der gleichen Weise, dass die Liste erweitern Methode.Hier ist eine einfache benutzerdefinierte Klasse, die die
__iadd__
spezielle Methode. Initialisieren Sie das Objekt mit einem int, der dann verwendet werden kann der + = - operator, um eine Nummer hinzuzufügen. Ich habe ein print-Anweisung in__iadd__
zu zeigen, dass es aufgerufen wird. Auch__iadd__
wird erwartet, dass ein Objekt zurückgeben, so dass ich wieder die Zugabe von selbst plus die andere Zahl, die Sinn macht, in diesem Fall.Hoffe, das hilft.
InformationsquelleAutor der Antwort Bryan
+=
fügt ein anderer Wert den Wert der Variablen und weist den neuen Wert der Variablen.-=
,*=
,/=
gilt Analog für Subtraktion, Multiplikation und division.InformationsquelleAutor der Antwort Imran
+=
fügt eine Zahl in eine variable, die änderung der variable, die sich in der (in der Erwägung, dass+
würde nicht). Ähnlich wie diese, gibt es folgende, ändert auch die variable:-=
, subtrahiert einen Wert von der Variablen, wird die variable auf das Ergebnis*=
multipliziert die variable und den Wert, so dass das Ergebnis wird der variable/=
, teilt die variable durch den Wert, so dass das Ergebnis wird der variable%=
, führt E-Modul auf die variable, wobei die variable dann gesetzt, mit dem Ergebnis, das esMöglicherweise gibt es andere. Ich bin kein Python-Programmierer.
InformationsquelleAutor der Antwort Ryan Bigg
Fügt er den rechten Operanden nach Links.
x += 2
bedeutetx = x + 2
Es können auch Elemente hinzufügen, um eine Liste -- siehe diese SO-thread.
InformationsquelleAutor der Antwort Kaleb Brasee
Es ist nicht nur eine rein syntaktische Verknüpfung. Versuchen Sie dies:
versus
Dies zeigt, dass die += ruft die iadd Liste Methode, aber + ruft hinzufügen, die verschiedene Dinge tun mit Listen.
InformationsquelleAutor der Antwort C S
x += 5
ist nicht genau das gleiche wie zu sagenx = x + 5
in Python.Hinweis hier:
Finden Sie unter Referenz: Warum tut += Verhalten sich unerwartet auf den Listen?
InformationsquelleAutor der Antwort Roshan Mehta
ist nur eine Abkürzung für das schreiben
So, anstatt Sie zu schreiben, wäre
Beide Möglichkeiten sind korrekt, aber Beispiel zwei hilft Ihnen beim schreiben ein wenig weniger code
InformationsquelleAutor der Antwort Vash
Notionally a += b "fügt" b, um ein speichern das Ergebnis in einem. Diese vereinfachende Beschreibung beschreiben würde den + = - operator in vielen Sprachen.
Jedoch die vereinfachende Beschreibung wirft ein paar Fragen stellen.
In python die Antworten auf diese Fragen hängen von dem Datentyp ein.
Also, was genau bedeutet "hinzufügen" bedeuten?
Beachten Sie, dass für Listen, + = flexibler ist als +, der + - operator auf einer Liste eine weitere Liste, aber der + = - operator akzeptiert jeden durchsuchbar.
Also, was bedeutet "speichern der Werte in einer" zu bedeuten?
Wenn das Objekt verändert, dann ist es empfohlen (aber nicht erforderlich) , führen Sie die änderung im Ort. So ein Punkte auf das gleiche Objekt es Tat, bevor, aber dieses Objekt hat nun verschiedene Inhalte.
Wenn das Objekt unveränderlich ist, dann ist es natürlich nicht, führen Sie die änderung im Ort. Einige veränderliche Objekte können auch nicht über eine Implementierung einer in-place "add" - operation . In diesem Fall wird die variable "a" wird aktualisiert und verweist auf ein neues Objekt, welches das Ergebnis einer addition.
Technisch umgesetzt wird dies durch die Suche nach
__IADD__
ersten, wenn nicht umgesetzt, dann__ADD__
ist erprobt und schließlich__RADD__
.Sorgfalt ist erforderlich bei der Verwendung von += in python auf Variablen, bei denen wir nicht sicher sind, die genaue Art und insbesondere dort, wo wir nicht sicher sind, ob die Art ist veränderlich ist oder nicht. Betrachten Sie beispielsweise den folgenden code.
Wenn wir invoke dostuff mit einem Tupel dann das Tupel kopiert wird, als Teil des += Betrieb und so b bleibt davon unberührt. Allerdings, wenn wir es aufrufen, mit einer Liste geändert wird, so dass sowohl a und b betroffen sind.
In python 3, ähnliches Verhalten beobachtet, die mit "Byte" und "bytearray" - Typen.
Schließlich beachten Sie, dass die Umwidmung geschieht, selbst wenn das Objekt nicht ersetzt. Das ist egal, viel, wenn der linken Seite ist einfach eine variable, aber es kann dazu führen, verwirrend Verhalten, wenn Sie haben eine unveränderliche Einziehung mutable collections Beispiel:
In diesem Fall [5] wird erfolgreich der Liste Hinzugefügt werden, so bezeichnet a[0] aber dann danach ist, wird eine Ausnahme ausgelöst, wenn der code versucht und scheitert erneut zuweisen a[0].
InformationsquelleAutor der Antwort plugwash
Wie andere auch gesagt, das der + = - operator ist eine Abkürzung.
Ein Beispiel:
Könnte es auch so geschrieben werden also:
So dass anstelle des Schreibens das erste Beispiel, können Sie schreiben Sie einfach die zweite, die funktioniert gut.
InformationsquelleAutor der Antwort ZeroFunter
Denken Sie daran, wenn Sie verwendet werden, um die Summe, z.B. 2 & 3, in deinen alten Rechner und jedes mal, wenn Sie drücken Sie die
=
sehen Sie 3 Hinzugefügt, um die Summe, die+=
hat eine ähnliche Aufgabe. Beispiel:InformationsquelleAutor der Antwort athraa