[Python-de] Wie sieht Python fuer mich aus?

Dinu Gherman gherman at darwin.in-berlin.de
Mo Jan 9 09:54:55 EST 2017


[Zweiter Versuch mit ausgelagertem Anhang, siehe http://imgur.com/a/5iA5m]

On 09 Jan 2017, at 06:23, Stefan Schwarzer <sschwarzer at sschwarzer.net> wrote:
> 
>>  Variablen
>> 
>>  Eine Variable wird durch eine Zuweisung definiert. Eine
>>  Variable hat keinen Typ, sondern Werte haben einen Typ.
> 
> Eine wichtige Einsicht!

Wobei der Begriff “Variable” leider häufig 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 “Bezeichnern” bzw. “Identifier”. Das macht 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ü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 »[:]« erfolgen.)
> 
> Das kopiert nur die erste "Ebene" der Liste ("flache Kopie",
> "shallow copy"). "Innere" Listen oder Objekte werden dabei
> also nicht kopiert, sondern deren Referenzen übernommen.

Ich habe unten mal ein super-uralt-unsupported-Tool von mir bemüht (hoffe, das Bild kommt über die Liste; alle rechteckigen Objekte haben eine eigene ID).

Gruß,

Dinu

.. code-block:: python

    # https://pypi.python.org/pypi/sh                                               
    import sh

    # https://pypi.python.org/pypi/pyrels                                           
    from pyrels import pyrels2dot

    L = [1, 2, [3, [4, 5]]]
    pyrels2dot.namespace2dot({'L': L}, "list.dot")
    sh.dot('-Tpng', 'list.dot', _out='list.png')

    Lc = L[:]
    pyrels2dot.namespace2dot({'Lc': Lc, 'L': L}, "list_copy.dot")
    sh.dot('-Tpng', 'list_copy.dot', _out='list_copy.png’)
    
    # Bild list_copy.png siehe anbei
    # oder hier: http://imgur.com/a/5iA5m



Mehr Informationen über die Mailingliste python-de