Path: csiph.com!fu-berlin.de!uni-berlin.de!not-for-mail From: Dinu Gherman Newsgroups: de.comp.lang.python Subject: Re: [Python-de] Wie sieht Python fuer mich aus? Date: Mon, 9 Jan 2017 17:23:16 +0100 Lines: 105 Message-ID: References: <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> <0B1DF310-352A-428B-9057-E559789A10F5@darwin.in-berlin.de> Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\)) Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: news.uni-berlin.de TJ7JnzG6f49NJDyA2X9MUwb3TwSuJVKTqGh9Q2OkZSgA== Return-Path: X-Original-To: python-de@python.org Delivered-To: python-de@mail.python.org X-Envelope-From: gherman@darwin.in-berlin.de In-Reply-To: X-Mailer: Apple Mail (2.3124) X-BeenThere: python-de@python.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Die Deutsche Python Mailingliste List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Mailman-Original-Message-ID: <0B1DF310-352A-428B-9057-E559789A10F5@darwin.in-berlin.de> X-Mailman-Original-References: <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> Xref: csiph.com de.comp.lang.python:4627 Ich denke, die meisten sehen =E2=80=9CBezeichner=E2=80=9D/=E2=80=9CIdentif= ier=E2=80=9D zutreffend als Synonym f=C3=BCr den textuellen Namen einer = =E2=80=9CVariablen=E2=80=9D und auf Verweis auf das dazugeh=C3=B6rige = Objekt. Mir scheint allerdings auch, dass die Python-Doku traditionell = besonders gern von =E2=80=9CNamen=E2=80=9D spricht, wohl um = hervorzuheben, dass es eben nur Verweise auf Objekte (im Sinne von = "Schall und Rauch=E2=80=9D) und nicht mit diesen identisch sind. Ganz = realistisch geh=C3=B6rt beides zusammen, und zumindest auf oberster = Ebene kann man nicht nur eines davon haben, wenn man eigene Variablen = benutzen m=C3=B6chte. Und dass in der Doku nicht alles 100% konsistent ist, sollte niemanden = =C3=BCberraschen. Diese ist ja nicht automatisch erzeugt worden. Gru=C3=9F, Dinu > On 09 Jan 2017, at 16:41, Stefan Ram wrote: >=20 > Dinu Gherman writes: > [Anf=C3=BChrungszeichen aus technischen Gr=C3=BCnden ver=C3=A4ndert] >> Wobei der Begriff "Variable" leider h=C3=A4ufig sehr vage >> verwendet wird. Es wird einiges klarer, wenn man andere >=20 > Im The Python Language Reference (PLR) Release 3.6.0 (Guido > van Rossum and the Python development team) 4.2.1 steht >=20 > =C2=BBIf a name is bound in a block, it is a local variable of > that block, unless declared as nonlocal or global. If a > name is bound at the module level, it is a global variable.=C2=AB >=20 > . Dies k=C3=B6nnt man als eine Definition von =C2=BBvariable=C2=AB = lesen. >=20 >> Begriffe benutzt (und auch die jeweilige Rolle mit in >> Betracht zieht). In der Ausbildung spricht man eher von >> "Bezeichnern" bzw. "Identifier". Das macht >=20 > =C2=BBIdentifier=C2=AB wird in PLR 3.6.0 2.3 als ein bestimmter > Text definiert, n=C3=A4mlich als ein Text nach dem Muster >=20 > xid_start xid_continue* >=20 > . Ein Bezeichner ist also etwas anderes als eine Variable. >=20 > Ein Bezeichner ist einfach jede Folge von Schriftzeichen, > die jenem Muster gen=C3=BCgt, auch wenn sie nicht als Variable in > einem Programm verwendet wird. >=20 > In diesem Zusammenhang ist aber auch (wie schon am > Zitat aus 4.2.1 erkennbar) der Begriff =C2=BBname=C2=AB wichtig. > Dazu kann man PLR 3.6.0 4.2 "Naming and Binding" lesen. >=20 > Man kann meiner Meinung nach dem ersten Zitat oben > entnehmen, da=C3=9F =C2=BBname=C2=AB der Oberbegriff zu =C2=BBlocal = variable=C2=AB > und =C2=BBglobal variable=C2=AB sein k=C3=B6nnte. >=20 > Wobei ich vielleicht einen kleinen Widerspruch entdecke. > Zuerst hei=C3=9Ft es in 4.2.1 >=20 > Names refer to objects. >=20 > , aber dann sp=C3=A4ter in 4.2.2 >=20 > When a name is not found at all, a NameError exception is > raised. >=20 > . Aber, wenn =C2=BBa name is not found at all=C2=AB, dann ist es > nach der zitierten Definition =C2=BBNames refer to objects=C2=AB > gar kein =C2=BBname=C2=AB. Hier m=C3=BC=C3=9Fte es vielleicht hei=C3=9F= en >=20 > When an ordinary identifier is not found to refer to=20 > any object at all, ... >=20 > Ganz chaotisch wird es dann, wenn man 2.3 liest: >=20 > Identifiers (also referred to as names) >=20 > . Hier wird =C2=BBname=C2=AB als Synonym f=C3=BCr =C2=BBidentifier=C2=AB= definiert, > aber laut 4.2.1 ist ein Name kein Synonym f=C3=BCr =C2=BBidentifier=C2=AB= , > sondern bezieht sich immer auf ein Objekt. >=20 > Also, das ist meiner Meinung nach eine Sprachnorm, > die Begriffe nicht so genau verwendet, wie ich es > mir w=C3=BCnschen w=C3=BCrde. >=20 > Dies bringt den Leser dann tats=C3=A4chlich in die Pflicht, > die Begriffe, welche von jener Norm selber nicht so=20 > genau definiert werden, selber - so nah wie m=C3=B6glich an > der Norm - zu definieren. >=20 >> klarer, dass eine "Variable" letztlich auch nur eine >> Art Tupel ist, das aus einem Namen und einem Wert besteht. >> Und, richtig, eine Typ-Information hat nur f=C3=BCr die Werte >> irgendeinen Sinn. >=20 > _______________________________________________ > python-de maillist - python-de@python.org > https://mail.python.org/mailman/listinfo/python-de