Ist eine Variable der Name, der Wert oder der Speicherort?

8

Ich habe Python seit ein paar Monaten gelernt, und auch sehr wenig C, und ich fragte mich, ob jemand diesen Zweifel für mich beseitigen könnte:

Ist eine Variable der Name, der Wert oder der Speicherort?

Zum Beispiel:

%Vor%

Ist die Variable x, der Wert von x oder die Position von x im Speicher?

Ich suche nach einer klaren Erklärung, was eine Variable ist. Ich habe schon die Wikipedia-Seite für Variablen und diese Frage , aber mir war beides nicht klar. Wenn dies eine doppelte Frage ist, wäre ein Link zur richtigen Antwort großartig.

Danke!

    
Impossibility 01.11.2013, 04:52
quelle

4 Antworten

8

Es gibt verschiedene Dinge mit der Anweisung x=5 :

  1. Ein int-Objekt mit dem Wert von 5 wird erstellt (oder gefunden, wenn es bereits existiert);
  2. Der Name x wird erstellt (oder die Verknüpfung mit dem letzten Objekt 'x' wird aufgehoben);
  3. Der Verweiszähler für das neue (oder gefundene) int-Objekt wird um 1 erhöht;
  4. Der Name x ist dem Objekt mit dem Wert '5' zugeordnet (oder gefunden).

Da int-Objekte unveränderlich sind, können sie interniert sein, um effizient zu sein. String-Objekte werden eher interniert.

Hier sind einige Beispiele:

%Vor%

Der beste Weg, um Variablennamen zu denken, wie 'x' in x=5 , ist eine Bezeichnung.

Es ist möglich, Objekte ohne Label zu haben, z. B. die 5 einzelnen String-Objekte, die in diesem Listenverständnis erstellt wurden:

%Vor%

Sie können dann Objekte erstellen, die unabhängig vom Wert dieser 5 Objekte sind:

%Vor%

Sie können ihre individuellen Speicheradressen (in cPython) oder eine eindeutige ID-Adresse abrufen:

%Vor%

Beachten Sie, dass die zwei unabhängig erstellten Listen des anonymen Objekts gleich sind (in diesem Fall die ersten 5). Ich habe absichtlich Saiten benutzt, weil sie eher begraben sind ...

Man denke also so: Zwei verschiedene Prozesse laufen mit x=5 :

  1. das Objekt wird erstellt (oder gefunden, wenn es unveränderlich ist, interniert und existiert) und
  2. das Objekt ist beschriftet.
dawg 01.11.2013, 05:02
quelle
3

Es gibt irgendwo in einem Speicher Platz, wo die Werte gespeichert sind. Dieser Speicher befindet sich dann über eine Adresse, die normalerweise durch eine Hexadezimalzahl oder manchmal eine Binärzahl dargestellt wird. Daher sind diese Zahlen für den Programmierer schwer zu merken. Daher verwendeten sie den Begriff Variable, um auf einfache Weise auf diesen Speicherort zu verweisen, oder Sie können eine höhere Abstraktion sagen. Also ist x nur ein Name, der sich auf einen Ort im Speicher bezieht, der den Wert 5 enthält. Das ist alles!

    
SujitS 01.11.2013 05:07
quelle
0

Eine Variable ist eine Zuordnung eines Namens zum zugehörigen Speicher und dient dazu, auf diesen Speicherort in Ihrem Programm zu verweisen. Wenn Sie eine Variable zuweisen und Operationen darauf ausführen, füllen und ändern Sie diesen Speicher. Wenn Sie eine Variable neu zuweisen, können Sie sie auf einen anderen Speicherort verweisen - Sie ordnen diesen Namen neu zu.

    
Christian Ternus 01.11.2013 04:58
quelle
0

In Python werden Variablen am besten als Namen betrachtet.

Im Fall von Zahlen sind Zahlen unveränderlich, so dass das Umhängen einer Variablen immer zu einer anderen Zahl führt, ohne die Zahl zu ändern.

%Vor%

Der Unterschied ist deutlicher bei veränderbaren Objekten, wo Sie einen Wert ändern ODER die Variable auf einen anderen Wert beziehen können

%Vor%

Empfohlener Wert:

Ссылка

Ссылка

    
Chad Miller 01.11.2013 05:01
quelle