[Python-de] Klasseninstanzen

Georg Mischler schorsch at schorsch.com
Wed Feb 26 08:01:25 EST 2003


robert schneider wrote:

> Hallo.
>
> Versuche mich gerade mit Klassen in Python vertraut zu machen, doch
> begegnet mir eine Sache, die mich einfach wundert...
>
> Folgendes Snippet
>
> # anfang _mod_importDic.py
> class ConvertFile:
>      def __init__(self, file):

                    ^^^^  ^^^^
                     a      b


> myConverter = ConvertFile(  )

                 ^^^^^^^^^  ^^
                     a      b?


> Ich dachte eine Klasseninstanz wird immer
> Instanz = Klasse() erzeugt.


Das ist auch richtig so. Voraussetzung ist allerdings,
dass bei der Erzeugung der Instanz alle vom Konstruktor
__init__() erwarteten Parameter mitgeliefert werden.
Das erste Argument (self) wird automagisch von der
Instanz selber beigesteuert, alle weiteren (in deinem
Fall "file") müssen im Aufruf enthalten sein.

Noch ein stilistischer Nachtrag: Es wird nicht empfohlen,
eigene Modulnamen mit Unterstrichen zu beginnen. Es ist
Konvention, Erweiterungsmodule in C, auf welche nur ueber
einen Wrapper in Python zugegriffen wird, so zu benennen.
Ein Beispiel ist z.B. das Standard-Modul socket, welches
intern auf das Erweiterungsmodul _socket zurueckgreift.


-schorsch

-- 
Georg Mischler  --  simulations developer  --  schorsch at schorsch com
+schorsch.com+  --  lighting design tools  --  http://www.schorsch.com/






More information about the Python-de mailing list