Path: csiph.com!news.redatomik.org!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!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 15:54:55 +0100 Lines: 59 Message-ID: References: <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> 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 8uBHrvT7+BxX3M4DKOGbNwLR2WZNvladIC7WINI2EO0Q== 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: <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> 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: X-Mailman-Original-References: <0a1a079d-99e2-f353-9334-ad2b20344449@sschwarzer.net> Xref: csiph.com de.comp.lang.python:4625 [Zweiter Versuch mit ausgelagertem Anhang, siehe = http://imgur.com/a/5iA5m] On 09 Jan 2017, at 06:23, Stefan Schwarzer = wrote: >=20 >> Variablen >>=20 >> Eine Variable wird durch eine Zuweisung definiert. Eine >> Variable hat keinen Typ, sondern Werte haben einen Typ. >=20 > Eine wichtige Einsicht! Wobei der Begriff =E2=80=9CVariable=E2=80=9D leider h=C3=A4ufig sehr = vage verwendet wird. Es wird einiges klarer, wenn man andere Begriffe = benutzt (und auch die jeweilige Rolle mit in Betracht zieht). In der = Ausbildung spricht man eher von =E2=80=9CBezeichnern=E2=80=9D bzw. = =E2=80=9CIdentifier=E2=80=9D. Das macht klarer, dass eine =E2=80=9CVariabl= e=E2=80=9D letztlich auch nur eine Art Tupel ist, das aus einem Namen = und einem Wert besteht. Und, richtig, eine Typ-Information hat nur f=C3=BC= r die Werte irgendeinen Sinn. > Eine Variable wird an eine Liste gebunden, die Liste wird >> also bei einer Zuweisung nicht kopiert. (Kopieren kann mit >> nachgestelltem slice =C2=BB[:]=C2=AB erfolgen.) >=20 > Das kopiert nur die erste "Ebene" der Liste ("flache Kopie", > "shallow copy"). "Innere" Listen oder Objekte werden dabei > also nicht kopiert, sondern deren Referenzen =C3=BCbernommen. Ich habe unten mal ein super-uralt-unsupported-Tool von mir bem=C3=BCht = (hoffe, das Bild kommt =C3=BCber die Liste; alle rechteckigen Objekte = haben eine eigene ID). Gru=C3=9F, Dinu .. code-block:: python # https://pypi.python.org/pypi/sh = =20 import sh # https://pypi.python.org/pypi/pyrels = =20 from pyrels import pyrels2dot L =3D [1, 2, [3, [4, 5]]] pyrels2dot.namespace2dot({'L': L}, "list.dot") sh.dot('-Tpng', 'list.dot', _out=3D'list.png') Lc =3D L[:] pyrels2dot.namespace2dot({'Lc': Lc, 'L': L}, "list_copy.dot") sh.dot('-Tpng', 'list_copy.dot', _out=3D'list_copy.png=E2=80=99) =20 # Bild list_copy.png siehe anbei # oder hier: http://imgur.com/a/5iA5m