Übersicht

  => Der Ticketautomat in Dia
  => dia2code
  => Der Ticketautomat in Python
  => pydoc

Der Ticketautomat in Dia

Ticketautomat

 

<<<

dia2code

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:

<<<

Der Ticketautomat in Python

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

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.

<<<
    W. Spiegel, E-Mail: walter.spiegel@web.de