KlassenEinfuehrung
Aus ProgrammingWiki
< EGE
Klasse definieren:
class Auto: def __init__(self, typ_neu, kennzeichen_neu): self.typ = typ_neu self.kennzeichen = kennzeichen_neu self.geschwindigkeit = 0
def gas_geben(self, geschwindigkeitserhoehung): self.geschwindigkeit = self.geschwindigkeit + geschwindigkeitserhoehung
def geschwindigkeitAngeben(self): return self.typ + " fährt gerade " + str(self.geschwindigkeit) + " km/h"
def faehrt_zu_schnell(self, hoechstgeschwindigkeit): if self.geschwindigkeit>hoechstgeschwindigkeit+3: return True else: return False
Konkretes Objekt initialisieren:
caddy = Auto("VW Caddy", "ERZ-AB 34") # "caddy" ist der Name des Objekts v_neunzig = Auto("Volvo V 90", "ERZ-V 90")
Werte lesen / schreiben:
caddy.gas_geben(20) caddy.gas_geben(15)
print(caddy.geschwindigkeitAngeben())
if caddy.faehrt_zu_schnell(30): print("HG überschritten")
Komplexes Beispiel (schwer):
class Bierflasche: # Namen von Klassen sollten groß geschrieben werden def __init__(self, marke_neu): self.marke = marke_neu self.istLeer = False def trinkeFlasche(self): self.istLeer = True def zustand(self): fuellstand = "" if self.istLeer: fuellstand = "leere" else: fuellstand = "volle" return "eine " + fuellstand + " Flasche " + self.marke class Bierkasten: def __init__(self, anzahl, marke_neu): self.inhalt = [] for i in range(anzahl): self.inhalt.append(Bierflasche(marke_neu)) def gibFlasche(self, vonPos): return self.inhalt[vonPos] def neueFlasche(self, flasche): if len(self.inhalt) < 20: self.inhalt.append(flasche) else: print("Bierkasten ist voll.") def ausgabe(self): print("\nDieser Bierkasten enthält:") for einzelflasche in self.inhalt: print(einzelflasche.zustand()) # Objekt initialisieren: fiedler = Bierflasche("Fiedler") warsteiner = Bierflasche("Warsteiner") kasten1 = Bierkasten(5, "Holsten") kasten2 = Bierkasten(20, "Becks") # Werte lesen / schreiben: kasten1.neueFlasche(fiedler) kasten2.neueFlasche(warsteiner) print(fiedler.zustand()) fiedler.trinkeFlasche() print(fiedler.zustand()) kasten1.ausgabe() kasten2.ausgabe() kasten1.gibFlasche(3).trinkeFlasche() print (kasten1.gibFlasche(3).zustand())