Zuerst zu den Geschmacksachen: Ich habe nicht gerne GROSSGESCHRIEBENE Variablen. So geschriebene Namen sind für mich Konstanten (was inbesondere bei Python wichtig zu unterscheiden ist, da es keine Konstanten im Sinne von nicht veränderbar gibt). Dann schreibe ich normalerweise auch Programme, die über ein kleines script hinausgehen so, dass sie als Module einzusetzen sind. Dafür bediene ich mich folgender Grundstruktur:
Code:
def main():
print "Main Routine, nur dann abgearbeitet, wenn als Programm ausgeführt"
if __name__ == '__main__':
main()
So nun noch ein paar Tips:
Als nichts verwendet man normalerweise None und nicht 0 weil 0 ist eine Zahl und None ist nichts (auch wenn es ein Objekt ist...).
Die Benutzereingaben könnte man auch so lösen:
Code:
def menu():
user_choice = raw_input("choose:")
{ '0' : player_resource.play,
'1' : player_resource.stop,
'2' : player_resource.pause,
........
'10' : MenuPrint("Bye, Bye") }[user_choice]()
Was dir noch fehlt ist "MenuPrint":
Code:
class MenuPrint(object):
def __init__(self, txt): self.txt = txt
def __call__(self): print self.txt
Lange Strings wie am Anfang sind mit print auf jeder Zeile etwas mühsam. Ich verwende lieber print """
langer String
über mehrere Zeilen"""
Dokumentier den Quelltext besser. Zumindest sollte ein kleiner, eingebetteter Python-Doc-String die Funktion erklären:
Code:
def do_nothing():
""" Diese Funktion tut wirklich nichts, aber das sehr gut! """
pass
>>> help(do_nothing)
Help on function do_nothing in module __main__:
do_nothing()
Diese Funktion tut wirklich nichts, aber das sehr gut!
Gruss, Andy
Lesezeichen