Anzeige:
Ergebnis 1 bis 2 von 2

Thema: XMMS Control in Python

  1. #1
    phnord
    Gast

    XMMS Control in Python

    Holla!

    Ich versuch schon seit geraumer Zeit Python etwas näher kennen zu lernen. Habe jetzt zum ersten Mal ein Skript geschrieben, das meiner Meinung nach soweit ganz gut funktioniert. Natürlich hat es ein paar Macken und hier und da kann man sicher noch einige Optimierungen vornehmen. Und da kommt ihr ins Spiel. Was haltet ihr von dem bisherigen Programmcode? Speziell interressiert mich da auch die Strukturierung, Verwendung von Variablen, etc.
    Was mich auch noch interressieren würde ist, nach welcher Methode ihr euren Programmen eine höhere Versionsnummer spendiert.

    Das Skript hat einige Funktionen zur Steuerung von XMMS über die Konsole. Eine eingebaute Suchfunktion für die Playlist ist auch schon da, wobei das Ergebnis der Suche nicht immer Erfolgreich ist . Demnach braucht ihr das XMMS Python Modul und natürlich XMMS selber.

    Her mit euren Meinungen

    mfg
    phnord

  2. #2
    Registrierter Benutzer
    Registriert seit
    05.09.2002
    Ort
    Neuhausen
    Beiträge
    320
    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

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •