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

Reply via email to