Heim  >  Artikel  >  Backend-Entwicklung  >  Der Unterschied zwischen Zuweisung in Python- und C-Sprache

Der Unterschied zwischen Zuweisung in Python- und C-Sprache

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼Original
2019-06-24 13:09:293505Durchsuche

Der Unterschied zwischen Zuweisung in Python- und C-Sprache

Was ist der Unterschied zwischen der Zuweisung in Python und der C-Sprache? Schauen wir uns zunächst an, wie ein einfacher Python-Code im Speicher aussieht:

b = 3
b = b + 5

Das schematische Diagramm der Operationen im Speicher lautet wie folgt:

Der Unterschied zwischen Zuweisung in Python- und C-Sprache

Aus der wörtlichen Bedeutung des Codes geht jedoch hervor, dass „Weisen Sie 3 zu b und addieren Sie 5 zu b.“ und weisen Sie dann Give b zu >

Das heißt, der Wert von b + 5 wird in b zurückgeschrieben. So sieht ein typisches C-Programm aus. Weisen Sie der Variablen b eine Speichereinheit vom Typ int zu und speichern Sie dann die Ganzzahl 3 in der Speichereinheit. b stellt den Speicherplatzblock dar und wird nicht mehr verschoben. Der Wert von b kann aktualisiert werden, aber die Adresse von b im Speicher ändert sich nicht mehr. Wir sagen also b = b + 5, was gleich b ← b + 5 ist. Nachdem wir 5 zum Wert von b addiert haben, wird es immer noch in b platziert. Variable b ist eng an den Speicherplatz gebunden, in dem sie sich befindet.

Verwandte Empfehlungen: „

Python-Video-TutorialDer Unterschied zwischen Zuweisung in Python- und C-Sprache

Wenn man sich das Speicherdiagramm in Python oben ansieht, erhält b + 5 einen neuen Wert und lässt dann b darauf zeigen neuer Wert. Mit anderen Worten, was es tut, ist Folgendes:

b ← 3
b ← b + 5

setzt b so, dass es auf 3 zeigt, und setzt dann b so, dass es auf den neuen Wert von b + 5 zeigt. Das C-Programm aktualisiert den in der Speichereinheit gespeicherten Wert, während Python den Zeiger der Variablen aktualisiert.

Variablen in C-Programmen speichern einen Wert, während Variablen in Python auf einen Wert verweisen.

Wenn das C-Programm Daten indirekt manipuliert, indem es Speicheradressen manipuliert (jede Variable entspricht einer festen Speicheradresse, das Manipulieren von Variablen bedeutet also das Manipulieren von Speicheradressen) und sich die Daten in einer passiven Position befinden, dann manipuliert Python sie direkt . Daten, Daten befinden sich in einer aktiven Position und Variablen existieren nur noch als Referenzbeziehung und haben keine Speicherfunktion mehr.

In Python belegen alle Daten einen Speicherplatz. Beispielsweise belegen die neuen Daten b + 5 auch einen völlig neuen Speicherplatz.

Diese Operation von Python macht Daten zum Subjekt und Daten interagieren direkt mit Daten.

Daten werden in Python als Objekt bezeichnet.

Dieser Satz ist nicht zu streng. Aber in diesem einfachen Beispiel funktioniert es.

Eine Ganzzahl 3 ist ein Objekt vom Typ int, ein „hello“ ist ein String-Objekt und ein [1, 2, 3] ist ein Listenobjekt.

Python betrachtet alle Daten als „Objekte“. Es weist jedem Objekt einen Speicherplatz zu. Nachdem ein Objekt erstellt wurde, ändert sich seine ID nicht mehr.

id ist die Abkürzung für Identität. Es bedeutet „Identität; Identifikation“.

In Python können Sie id() verwenden, um die ID eines Objekts abzurufen, die als Adresse des Objekts im Speicher betrachtet werden kann.

Nachdem ein Objekt erstellt wurde, kann es nicht direkt zerstört werden. Daher zeigt die Variable b im vorherigen Beispiel zuerst auf Objekt 3 und führt dann weiterhin b + 5 aus. b + 5 generiert ein neues Objekt 8. Da Objekt 3 nicht zerstört werden kann, soll b stattdessen auf das neue Objekt 8 zeigen Möglichkeit, Objekt 8 zum Überschreiben von Objekt 3 zu verwenden. Nach Abschluss der Codeausführung befinden sich noch Objekt 3 und Objekt 8 im Speicher, und die Variable b zeigt auf Objekt 8.

Wenn es keine Variable gibt, die auf Objekt 3 zeigt (d. h. es kann nicht referenziert werden), verwendet Python den Garbage-Collection-Algorithmus, um zu entscheiden, ob es recycelt werden soll (dies geschieht automatisch und erfordert keine Sorge des Programmierers). darüber).

Ein altes Objekt kann nicht überschrieben werden. Neue Daten, die aufgrund der Interaktion mit dem alten Objekt generiert werden, werden im neuen Objekt platziert. Mit anderen Worten, jedes Objekt ist ein unabhängiges Individuum und jedes Objekt hat seine eigene „Souveränität“. Daher kann die Interaktion zweier Objekte ein neues Objekt erzeugen, ohne das ursprüngliche Objekt zu beeinflussen. In großen Programmen sind die Interaktionen zwischen Objekten komplex und diese Unabhängigkeit macht diese Interaktionen sicher.

C-Programme weisen jeder Variablen eine feste Speicheradresse zu, was die Unabhängigkeit zwischen C-Variablen gewährleistet.

C-Sprache ist die Interaktion zwischen Variablen (dh Speicheradressen) und Python ist die Interaktion zwischen Objekten (Daten). Dies sind zwei verschiedene Arten der Interaktion.

Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen Zuweisung in Python- und C-Sprache. 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