Der Ticketautomat in Dia |
dia2code |
Der Ticketautomat in Python |
pydoc |
<<<
macht daraus:
class Ticketautomat: """Class Ticketautomat """ # Attributes: preis = None # (int) bisherGezahlt = None # (int) gesamtsumme = None # (int) # Operations def __init__(self, ticketpreis): """function __init__ ticketpreis: int returns """ return None # should raise NotImplementedError() def gibPreis(self): """function gibPreis returns int """ return None # should raise NotImplementedError() def gibBisherGezahltenBetrag(self): """function gibBisherGezahltenBetrag returns int """ return None # should raise NotImplementedError() def geldEinwerfen(self, betrag): """function geldEinwerfen betrag: int returns """ return None # should raise NotImplementedError() def ticketDrucken(self): """function ticketDrucken returns """ return None # should raise NotImplementedError() def wechselgeldAuszahlen(self): """function wechselgeldAuszahlen returns """ return None # should raise NotImplementedError()
Beachte die Einrückungen! Zur Erklärung:
"""
sind sogenannte Dokumentationsstrings,
mehr hier.
geldEinwerfen(self, betrag)
class Ticketautomat: """Class Ticketautomat """ # Operations def __init__(self, ticketpreis): """function __init__ ticketpreis: int (in Cent!!!) """ self.preis = ticketpreis self.bisherGezahlt = 0 self.gesamtsumme = 0 def gibPreis(self): """function gibPreis returns self.preis """ return self.preis def gibBisherGezahltenBetrag(self): """function gibBisherGezahltenBetrag returns self.bisherGezahlt """ return self.bisherGezahlt def geldEinwerfen(self, betrag): """function geldEinwerfen betrag: int returns % """ if (betrag > 0): self.bisherGezahlt = self.bisherGezahlt + betrag else: print "Der Geldbetrag sollte > 0 sein: " + str(betrag) def ticketDrucken(self): """function ticketDrucken returns % """ if (self.bisherGezahlt >= self.preis): print "###################" print "# Dein Ticket . . ." print "#",self.preis, "Cent" print "###################" self.gesamtsumme = self.gesamtsumme + self.preis self.bisherGezahlt = self.bisherGezahlt - self.preis print "Wechselgeld:", self.wechselgeldAuszahlen(),"Cent" else: print "Da fehlt noch was:",(self.preis - self.bisherGezahlt), "Cent" def wechselgeldAuszahlen(self): """function wechselgeldAuszahlen returns wechselgeld """ wechselgeld = 0 # !! wechselgeld = self.bisherGezahlt self.bisherGezahlt = 0 return wechselgeld
und ein Probelauf:
Probelauf rmv = Ticketautomat(280) rmv.ticketDrucken() Da fehlt noch was: 280 Cent rmv.geldEinwerfen(100) rmv.ticketDrucken() Da fehlt noch was: 180 Cent rmv.gibPreis() 280 rmv.gibBisherGezahltenBetrag() 100 rmv.geldEinwerfen(200) rmv.gibBisherGezahltenBetrag() 300 rmv.ticketDrucken() ################### # Dein Ticket . . . # 280 Cent ################### Wechselgeld: 20 Cent<<<
pydoc ist Pythons Dokumentationstool! Aus einer Sitzung in IDLE:
>>> import pydoc >>> pydoc.help(pydoc) Help on module pydoc: NAME pydoc - Generate Python documentation in HTML or text for interactive use. FILE c:\python24\lib\pydoc.py DESCRIPTION In the Python interpreter, do "from pydoc import help" to provide online help. Calling help(thing) on a Python object documents the object.
Mit Hilfe von pydoc kann man aus den Dokumentationsstrings "automatisch" eine Dokumentation der Klasse erzeugen:
>>> import pydoc >>> pydoc.help(Ticketautomat) Help on class Ticketautomat in module __main__: class Ticketautomat | Class Ticketautomat | | Methods defined here: | | __init__(self, ticketpreis) | function __init__ | ticketpreis: int (in Cent!!!) | | geldEinwerfen(self, betrag) | function geldEinwerfen | betrag: int | returns % | | gibBisherGezahltenBetrag(self) | function gibBisherGezahltenBetrag | returns self.bisherGezahlt | | gibPreis(self) | function gibPreis | returns self.preis | | ticketDrucken(self) | function ticketDrucken | returns % | | wechselgeldAuszahlen(self) | function wechselgeldAuszahlen | returns wechselgeld
pydoc kann noch wesentlich mehr: Beispiel.
<<<