Tipps für Einsteiger und Meinungen zum Buch Python 3 von Heiko Kalista

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

__blackjack__ hat geschrieben: Dienstag 24. November 2020, 13:23 Für mich ist eine Variable in einer imperativen Programmiersprache ein Name ein Wert und ein Ort im Speicher. Das haben sowohl Python als auch C++. Der Unterschied ist, das in Python der Speicherort zum Wert gehört, während bei C++ Name und Speicherort zueinander gehören.
Das eine Variable aus einem Namen und einem Ort im Speicher besteht ist für mich nachvollziehbar aber einem Wert? Zumindest in C++ und Rust kann ich Werte ja von einer Variablen zu einer anderen bewegen, damit ist für mich der Wert von der Variable und die Variable vom Wert unabhängig. Zugegeben eine Variable an dessen Speicherort kein Wert liegt ist nicht valide aber trotzdem ist es für mich noch klar als Variable erkennbar.

Gerade weil bei Python Wert und Speicherort gekoppelt und unabhängig vom Namen sind, denke ich schon dass man sagen dass es Variablen in Python nicht gibt, zumindest nicht in der gleichen Form die C/C++ oder Rust haben.

In Python könnte man allerdings vielleicht Variablen als Name und +1 im Referenzzähler definieren, also Variablen als Referenzen die einen Namen haben. Welche sich unterscheiden von Referenzen innerhalb einer Liste oder Namen die Parameter (und anders als Argumente keine Referenz) sind.
Benutzeravatar
__blackjack__
User
Beiträge: 13077
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Auch in C++ und Rust gehört zum Konzept Variable auch ein Wert. Der kann halt auch undefiniert sein. In Python übrigens auch: lokale Variablen ”existieren” durch den Compiler, haben aber erst einen Wert wenn ihnen einer zugewiesen wird.

Ich komme bei der Betrachtung vom Compilerbau wo ich das so gelernt habe das zum Konzept Variable Name, Typ, Speicherplatz, und Wert gehören. Das sind die Sachen die man bei der Implementierung einer Programmiersprache ganz allgemein irgendwie zusammenbringen muss. Und welche Sachen davon jetzt zusammen gehören, also ob Typ und/oder Speicherplatz jetzt zum Namen oder zum Wert gehören, ist von der Programmiersprache abhängig. Also ja, Python macht das anders als C, aber es sind trotzdem diese Komponenten über die man reden muss, wenn man über Variablen redet.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman
Antworten