Seite 1 von 1

Klassen? Instanzen? Hä?

Verfasst: Montag 21. Juni 2004, 12:48
von HarLekiN
Hallo,
ich bin noch ein absoluter newb in Sachen Python und ich stoße hier im forum und auch sonst in allen tutorien immer wieder auf Klassen und Instanzen.
tja wie soll ich es sagen? Ich hab keinen Schimmer was das ist!
Aber scheinbar braucht man das ja um in der Sprache voran zu kommen!

Es wäre echt lieb, wenn mir das hier mal irgendjemand grob erklären könnte (for dummies) und zwar so, dass es auch ein Kind kapieren könnte.

Wozu braucht man Klassen?
Was sind Klassen?
Wie schreibt man sowas bzw wie ist sowas aufgebaut?

Gibt es etwas in Delphi oder PHP was man damit vergleichen könnte?

Ein besipiel oder so wäre auch echt super damit man es mal nachvollziehen kann .


Thx
mfg olé

Verfasst: Montag 21. Juni 2004, 13:07
von Dookie
Hi olé,

Klassen und Instanzen werden bei OOP (Objektorientierte Programmierung) benutzt. Klassen sind die Beschreibungen von Objekten und Instanzen sind dann die Objekte die mit Hilfe der Klassen erzeugt werden.
Unter http://home.foni.net/~heikos/python/node37.html findest Du eine recht gute Beschreibung, schau Dir auch das Kapitel zu OOP an. Für weitere Fragen einfach hier Posten.


Gruß

Dookie

Verfasst: Montag 21. Juni 2004, 13:13
von RainBowBender
Ein Objekt ist ein Ding, eine Sache, z.B. ein Auto. Objekte haben Eigenschaften in der Programmierung Attribute genannt. (Beim Auto: Farbe, Höchstgeschwindigkeit, Rahmennummer).
Außerdem können Objekte bestimmte Dinge tun. Das auto kann fahren, bremsen, abbiegen, etc).

Da alle Autos fahren, bremsen und abbiegen können, kann man das so festhalten:

Code: Alles auswählen

class Auto:
    def __init__(self,farbe,hoechstgeschwindigkeit):
        self.farbe = farbe
        self.hoechstgeschwindigkeit = hoechstgeschwindigkeit
    def fahren(self):
        print "Das Auto fährt, aber nicht schneller als %i" % self.hoechstgeschwindigkeit
    def bremsen(self):
        print "Auto bremst"
    def abbiegen(self,richtung):
        self.bremsen()
        print "Auto biegt nach %s ab" % richtung
Nun haben wir die Klasse "Auto" beschrieben. Was man nun in Python machen muss, um ein Auto zu erstellen ist folgendes:

Code: Alles auswählen

MeinAuto = Auto("rot",160)
wenn du das im Python Prompft machst, gib mal folgendes danach ein:
MeinAuto.fahren()
MeinAuto.abbiegen()

(Man ruft Methoden eines Objektes so auf: [Objekt].[Methode]
der erste Parameter von Methode ist dann [Objekt].

in Delphi gibt es auch klassen, auch in php (auch Schlüsselwort class)

Verfasst: Mittwoch 23. Juni 2004, 17:41
von Milan
Hi. Beim MeinAuto.abbiegen wird es eine Endlosrekursion geben, bis der Stack überläuft, davon abgesehen, dass es einen Fehler wegen fehlender Richtung gibt :wink: ... Ansonsten super beschrieben :D .

Verfasst: Mittwoch 23. Juni 2004, 19:39
von RainBowBender
Milan hat geschrieben:Hi. Beim MeinAuto.abbiegen wird es eine Endlosrekursion geben, bis der Stack überläuft, davon abgesehen, dass es einen Fehler wegen fehlender Richtung gibt :wink: ... Ansonsten super beschrieben :D .
das self.abbiegen() sollte self.bremsen() heißen *G*

was meinst du mit Fehler wegen fehlender Richtung?
Bei mir kommt keiner:

Code: Alles auswählen

>>> a = Auto("blau",120)
>>> a.fahren()          
Das Auto fährt, aber nicht schneller als 120
>>> a.abbiegen("rechts")
Auto bremst
Auto biegt nach rechts ab
>>> 
Ansonsten Danke für das Lob

Verfasst: Donnerstag 24. Juni 2004, 06:47
von mawe
Hi!
RainBowBender hat geschrieben: was meinst du mit Fehler wegen fehlender Richtung?
Naja, Du hast bei Deinem ursprünglichen Beispiel vergessen, eine Richtung anzugeben.

Code: Alles auswählen

MeinAuto.fahren()
MeinAuto.abbiegen() 
Beim zweiten Beispiel weiß das Auto was es machen soll :wink:

mawe

Verfasst: Donnerstag 24. Juni 2004, 08:38
von HarLekiN
hey cool danke!

dank deines Auto-Beispieles hab ich jetzt wenigstens eine ungefähre vorstellung was ne Klasse ist und ie man die Anwendet.

Das ganze ist ja praktischer las man auf den ersten blick denkt!

cool!

nochmal danke für die Antwort :-)

mfg

Verfasst: Donnerstag 24. Juni 2004, 13:46
von RainBowBender
mawe hat geschrieben:Hi!
RainBowBender hat geschrieben: was meinst du mit Fehler wegen fehlender Richtung?
Naja, Du hast bei Deinem ursprünglichen Beispiel vergessen, eine Richtung anzugeben.

Code: Alles auswählen

MeinAuto.fahren()
MeinAuto.abbiegen() 
Beim zweiten Beispiel weiß das Auto was es machen soll :wink:

mawe
achso, sorry