Klasse und Instanzen...ich steh auf dem Schlauch

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Monsi
User
Beiträge: 23
Registriert: Mittwoch 4. Februar 2009, 10:29

Um noch mal zur urspruenglichen Fragestellung zurueckzukehren: ich habe jetzt das Buch "Einfuehrung in Python" von Lutz & Asher zu Rate gezogen und so ganz allmaehlich wird mir klar, was Klassen und Instanzen/Exemplare sind und wozu das Ganze nuetzlich sein koennte. Was mich anfangs so sehr verwirrt hatte war unter anderem die Tatsache, das self konventionell eingesetzt wird. Mir war nicht klar, dass die meisten Begriffe bei der Definition der Methoden einer Klasse einfach willkuerliche Begriffe sind, die ich durch meine eigenen ersetzen kann, solange ich sie konsistent verwende.

Auch die Funktion von init wurde mir eben erst klar, obwohl ich mich schon mehrere Stunden damit befasst hatte. Im Nachhinein ist das immer so offensichtlich, aber wenn man noch keine Ahnung davon hat, finde ich es schwer sich das selbst beizubringen. Also koennte es gut sein, dass ich noch oefter nachfrage bei Dingen die fuer geuebte User anscheinend selbstverstaendlich sind.

Liebe Gruesse
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Monsi hat geschrieben:Was mich anfangs so sehr verwirrt hatte war unter anderem die Tatsache, das self konventionell eingesetzt wird. Mir war nicht klar, dass die meisten Begriffe bei der Definition der Methoden einer Klasse einfach willkuerliche Begriffe sind, die ich durch meine eigenen ersetzen kann, solange ich sie konsistent verwende.
Was meinst du denn damit? `self' ist keinesfalls eine Konvention, sondern Python benötigt es als Referenz auf die Klasse, um die Methoden richtig an die Instanzen(@sma: :P) zu binden.
`__init__' ist etwas komplizierter, aber bei Namen mit zweifach führenden und angehängten Unterstrichen, kann man davon ausgehen, dass damit ein spezieller Effekt erzielt wird. Vergleiche, Rechenoperationen usw.
Monsi hat geschrieben:Also koennte es gut sein, dass ich noch oefter nachfrage bei Dingen die fuer geuebte User anscheinend selbstverstaendlich sind.
Tu das. Man hilft hier gerne, aber wirf davor am besten einen Blick in die Dokumentation, denn das erzieht dich auch zur Selbsthilfe ;)

@Don Quixote: Ich sehe ein paar Riesen! :D Aber um mal ernst zu werden: Ist das nicht recht egal wie man etwas nennt, solange es so konsistent ist, dass keine Verwechslungen auftreten? Eigentlich müsste man vor allem in der Informatik, da sie ja wie keine andere Wissenschaft globalisiert ist, durchgängig die englischen Fachbegriffe benutzen (oder deutsche, französische, ... der Entdecker darfs benennen ;)).
Monsi
User
Beiträge: 23
Registriert: Mittwoch 4. Februar 2009, 10:29

`self' ist keinesfalls eine Konvention, sondern Python benötigt es als Referenz auf die Klasse, um die Methoden richtig an die Instanzen(@sma: Razz) zu binden
"The first argument of every class method is always a reference to the current instance of the class. By convention, this argument is always named self." (Pilgrim, "Diveintopython")

Ich meinte damit nur, dass ich statt:

Code: Alles auswählen

class FirstClass:
        def setdata(self, value):
                self.data=value
auch das hier:

Code: Alles auswählen

class FirstClass:
         def setdata(Instanz, Wert):
                 Instanz.data=Wert
schreiben koennte
farid
User
Beiträge: 95
Registriert: Mittwoch 8. Oktober 2008, 15:37

Leonidas hat geschrieben:Aber wenn jemand weitere tolle Begriffe zum Übersetzen will, wie wäre es mit diesen: Dependency Injection, Inversion of Control, RESTful, List Comprehension.
Wie wuerdest Du (oder eher sma) "List Comprehension" eindeutschen?

(Ich bin kein Freund uebermaessiger Eindeutschung von IT-Begriffen, aber die Frage nach einem deutschen Ausdruck fuer List Comprehension taucht immer wieder in Schulungen auf.)
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

farid hat geschrieben:Wie wuerdest Du (oder eher sma) "List Comprehension" eindeutschen?
Da gab es mal einen Thread dazu. Am ehesten überzeugt mich die von Georg angesprochene ZF-Notation aber wenn deine Schulungen sich nicht an Haskell-Programmierer oder Mathematiker richten, dann wirst du mit Zermelo-Fraenkel eher zur Verwirrung beitragen.

Listenaussonderung klingt für mich, nunja - erstens etwas arg holprig und ganz ehrlich stelle ich mit unter Aussonderung etwas anderes als eine LC vor. Zudem eine LC nicht nur aussondert sondern sowohl ``filter`` als auch ``map`` vereint. Listenausdruck ist dann wiederrum so generell, das er eigentlich keine Aussage hat.
farid hat geschrieben:(Ich bin kein Freund uebermaessiger Eindeutschung von IT-Begriffen, aber die Frage nach einem deutschen Ausdruck fuer List Comprehension taucht immer wieder in Schulungen auf.)
Nun, bei dieser Frage würde ich zugeben dass es keine brauchbare deutsche Übersetzung gibt die nicht haarsträubend ist. Ich denke an dieser Stelle würde ich dann eher auf den Begriff List Comprehension eingehen. Warum 'List' ist klar, aber wenn man 'Comprehension' erklärt bleibt das Leuten wohl besser im Kopf als irgendein deutscher Begriff unter dem entweder ein Mathematiker (ZF) oder niemand (restliche Vorschläge) sich etwas vorstellen kann.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

farid hat geschrieben:Wie wuerdest Du (oder eher sma) "List Comprehension" eindeutschen?
sma hat dazu keine gute Übersetzung. Ein Listengeneratorausdruck klingt recht hölzern. Ein `(x*x for x in y)` ist IMHO ein Generatorausdruck. Das Ding mit den eckigen Klammern erzeugt aber eine Liste. Also ist es ein Listengeneratorausdruck... Hm...

Stefan
Antworten