Wirkungen und Werte in Python (Wirkungen und Werte in Python), Lektion, Seite 724055
https://www.purl.org/stefan_ram/pub/wirkungen_python (Permalink) ist die kanonische URI dieser Seite.
Stefan Ram
Python-Kurs

Anmerkungen zu Bindungsanweisungen in Python 

Unterdrückung der Ausgabe

Durch eine Bindungsanweisung kann die Ausgabe des Wertes eines Ausdrucks in der Konsole unterdrückt werden.

Protokoll
2
2
_ = 2
(keine Ausgabe)

Typen

Objekte  haben eine Typ, Namen haben keinen  Typ.

Der „Typ eines Namens“ ist also nur durch sein Objekt bestimmt und ändert sich mit dem Objekt.

Protokoll

x = 2

type( x )

<class 'int'>

x = '2'

type( x )

<class 'str'>

Hilfe bei der Fehlersuche ⃗

Bei einer Fehlermeldung zu einer langen Zeile ist der Auslöser der Fehlermeldung manchmal nicht ganz klar.

Fehlermeldung

x = a / b / c

ZeroDivisionError: division by zero

Wenn lange Zeilen auf mehrere kurze Zeilen  aufgeteilt werden, sind die Fehlermeldungen auch entsprechend genauer. Die Zuweisung kann bei dieser Aufteilung helfen.

Aufteilung auf zwei Zeilen

d = a / b

x = d / c

Nun kann aus der Fehlermeldung sofort entnommen werden, welcher Wert Null ist.

Fehlermeldung

x = d / c

ZeroDivisionError: float division by zero

Da Fehlermeldungen immer für eine ganze Zeile gelten, werden sie genauer, wenn Zeilen kurz sind.

Umbindung eines Alias ⃗

Nach der folgenden Eingabe sind die Namen »x« und »y« an dasselbe Objekt ›3‹ gebunden.

Protokoll

x = 3

y = x

print( x )

3
print( y )
3

Wir nun »y« umgebunden, so hat dies keine  Auswirkung auf »x«. Der Name »x« bleibt weiterhin an das Objekt ›3‹ gebunden.

Protokoll

y = 7

print( x )

3
print( y )
7

Der Begriff der „Bindung“ ⃗

Man spricht von Bindungen  von Namen an Objekte und sagt nicht, daß Objekte in Variablen gespeichert werden, weil es einigen schwer fällt sich vorzustellen, daß ein und dasselbe Objekt in zwei verschiedenen Variablen enthalten sein kann (wie ›True‹ nach »b = True« und »d = True« an ›b‹ und ›d‹).

Sprechweisen ⃗

Bindungsanweisung
x = 2

Bei der Ausführung einer Bindungsanweisung wird der gewöhnliche Bezeichner auf der linken Seite an das Objekt auf der rechten Seite gebunden.

Man spricht auch von einer Zuweisung  eines Objektes (oder Wertes) an einen Bezeichner. Entsprechend wird die Bindungsanweisung auch als Zuweisungsanweisung  bezeichnet.

Einen Namen nennt man auch eine Variable. Man sagt auch „Das Objekt wird der Variablen zugewiesen.“

Gewöhnliche Bezeichner ohne Wert ⃗

Ein gewöhnlicher Bezeichner kann nicht  ausgewertet werden, wenn noch kein Objekt an ihn gebunden wurde.

Protokoll
y
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'y' is not defined

Der Status des Gleichheitszeichens »=« ⃗

Das Gleichheitszeichen in einer Bindungsanweisung ist kein  Operator, sondern ein Begrenzer. (The Python Language Reference, Release 3.7.0a1, 2.6 Delimiters ). Eine Bindungsanweisung ist ja auch kein Ausdruck, sondern eine Anweisung.

Die Bedeutung eines Namens ⃗

Die Bedeutung eines Namens unterscheidet sich in Abhängigkeit vom Orte seiner Verwendung.

Wenn der Name auf der linken Seite  des Gleichheitszeichens einer Bindungsanweisung steht, so bildet er mit dem Gleichheitszeichen zusammen eine Anweisung, deren Ausführung eine neue Bindung für diesen Namen festlegt.

Andernfalls steht der als Ausdruck verwendete Name für den Wert, an den er zuletzt gebunden wurde.

Navigierbarkeit ⃗

Es ist immer nur möglich, von einem Namen  über eine Bindung zu einem Objekt  zu gelangen.

Wenn man ein Objekt hat, kann man nicht  umgekehrt, vom Objekt ausgehend die Namen des Objektes finden.

Da eine Bindung zwischen einem Namen und einen Objekt keine bestimmte Reihenfolge kennt, verwenden wir die Ausdrück „einen Namen  an ein Objekt  binden“ und „ein Objekt  an einen Namen  binden“ mit derselben  Bedeutung.

Binden und Kopieren ⃗

Im folgenden wird der Name »x« an denselben Wert gebunden, an den bereits der Name »credits« gebunden ist.

Protokoll
credits
    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information.

x = credits

x

    Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information.

Durch die Bindungsanweisung »x = credits« wird der Text »Thanks to CWI …« nicht  kopiert. Der Name »x« wird lediglich an diesen Text gebunden, der weiterhin nur einmal im Speicher existiert. Dies bedeutet, daß das Binden eines neuen Namens (wie »x«) an einen sehr langen Text nicht besonders viel Speicherplatz kostet, da der lange Text dabei nicht kopiert wird.

Änderung der Bindungsanweisung ⃗

Die Ausführung einer Bindungsanweisung bewirkt eine Änderung, das heißt: sie verändert etwas, hat aber – wie alle Anweisungen – keinen Wert.

Bindungsanweisung
x = 2

Die Auswertung eines Namens ergibt einen Wert, das heißt: sie ergibt einen Wert, aber sie verändert nichts. (Wir ignorieren hierbei die Ausgabe des Wertes auf die Konsole, da diese nur eine Hilfe für den Programmierer sein soll, aber in fertigen Programmen normalerweise nicht verwendet wird.)

Auswertung
x
2

 

Seiteninformationen und Impressum   |   Mitteilungsformular  |   "ram@zedat.fu-berlin.de" (ohne die Anführungszeichen) ist die Netzpostadresse von Stefan Ram.   |   Eine Verbindung zur Stefan-Ram-Startseite befindet sich oben auf dieser Seite hinter dem Text "Stefan Ram".)  |   Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram. Schlüsselwörter zu dieser Seite/relevant keywords describing this page: Stefan Ram Berlin slrprd slrprd stefanramberlin spellched stefanram724055 stefan_ram:724055 Wirkungen und Werte in Python Stefan Ram, Berlin, and, or, near, uni, online, slrprd, slrprdqxx, slrprddoc, slrprd724055, slrprddef724055, PbclevtugFgrsnaEnz Erklärung, Beschreibung, Info, Information, Hinweis,

Der Urheber dieses Textes ist Stefan Ram. Alle Rechte sind vorbehalten. Diese Seite ist eine Veröffentlichung von Stefan Ram.
https://www.purl.org/stefan_ram/pub/wirkungen_python