On 2024-08-11 10:46, Stefan Ram <r...@zedat.fu-berlin.de> wrote: > "Peter J. Holzer" <hjp-usen...@hjp.at> schrieb oder zitierte: >>Es gibt natürlich auch Unterschiede, z.B. kann in Python ein Name immer >>nur auf genau ein Objekt zeigen > > "Zeiger" gibt es in C.
"Zeiger" ist ein programiersprachenübergreifendes Konzept. Zeiger mögen in verschiedenen Programmiersprachen anders genannt werden und leicht unterschiedliche Eigenschaften haben (in C kann man z.B. damit rechnen, in den meisten anderen Sprachen nicht), aber das Grundkonzept gibt es fast überall. > In Python sind Namen an Objekte /gebunden/. Das ist der übliche Jargon in Python, ich halte ihn aber aus mehreren Gründen für irreführend: 1. "Binden" ist ein Verb. Das beschreibt also eine Operation, nämlich genau die, die anderswo in der Dokumentation als "assignmen" (Zuweisung) bezeichnet wird. "Gebunden" ("bound") sagt also eigentlich nur aus, dass dem Namen bereits irgendetwas zugewiesen wurde. Es sagt wenig darüber aus, was das für Folgen hat und was man dann damit machen kann. 2. "Gebunden" hat keine klare Richtung. Wenn A an B gebunden ist, hängt dann A an B oder B an A oder hängen sie aneinander? Die Verbindung zwischen einem Namen und einem Objekt in Python hingegen hat eine eindeutige Richtung: Man kommt vom Namen zum Objekt, aber nicht vom Objekt zum Namen. Der Name "zeigt" also auf das Objekt, das Objekt "zeigt" nirgendwohin. Graphisch wird man das üblicherweise durch einen Pfeil vom Namen zum Objekt darstellen. Ich halte daher die Formulierung "der Name zeigt auf das Objekt" nicht für richtig, sondern sogar für besser als "der Name ist an das Objekt gebunden", insbesondere dann, wenn man Leuten etwas erklären will, die nicht schon seit Jahren auf der Python-Mailinglist subscribiert sind. > Ein Name kann an verschiedene Objekte gebunden sein, aber mit > Gültigkeitsbereich und Existenzdauer zusammen wird er dann eindeutig. > > Gültigkeitsbereich (statisch): > > def f(): > Hans = 5 > > def g(): > Hans = 6 Das sind andere Namen. Der Scope gehört zum Namen, auch wenn er nicht explizit geschrieben wird. (Das ist ein weiterer Grund, warum ich mit der Bezeichnung "Name" unglücklich bin. Damit verbindet man unwillkürlich die Zeichenfolge. Es geht aber um die Datenstruktur, die dahintersteckt.) hp _______________________________________________ python-de Mailingliste -- python-de@python.org Zur Abmeldung von dieser Mailingliste senden Sie eine Nachricht an python-de-le...@python.org https://mail.python.org/mailman3/lists/python-de.python.org/ Mitgliedsadresse: arch...@mail-archive.com