Damit es mal
irgendwie vorran geht poste ich einfach mal ein funktionierendes, lauffähiges Script:
Code: Alles auswählen
#!/usr/bin/env python
# -*- encoding: latin-1 -*-
class Testclass(object):
def __init__(self, arg):
self.arg = arg
if self.arg in ['-h', '--hilfe']:
self.__hilfe()
def __hilfe(self):
print "Testausgabe"
def main():
tc = Testclass('-h')
if __name__ == '__main__':
main()
Zu erst einmal: wenn etwas unklar ist, erkläre ich es gerne.
In Zeile 1 und 2 ist erstmal die Shebang und das Encoding. Beides schadet nie und ist generell zu empfehlen.
Zeile 4 besagt, dass die Klasse Testclass von dem Objekt
object erbt, also ist es eine New-Style Klasse. Ist im moment zwar nicht nötig, ich habe es mir aber Angewöhnt meine Klassen immer als New-Style Klassen zu definieren.
Die if-Anweisung in Zeile 8 habe ich auf zwei Zeilen aufgeteilt. Das ist klarer und entspricht dem Python Styleguide.
In Zeile 14 habe ich eine Funktion
main() angelegt, die das Programm steuert. Die Ähnlichkeit mit der
int main() aus C und C++ ist in diesem Fall durchaus erwünscht.
Zeilen 17 & 18 sind der Import-Hook. Das bedeutet, dass
main() nur ausgeführt wird, wenn das Script direkt gestartet wird, wenn das Programm importiert wird wird
main() nicht aufgerufen. Auch wieder etwas was hilfreich ist und nie schadet.
Achja, zum Parsen der Kommandozeilenoptionen gibt es schon das Modul
optparse, welches seine Aufgabe sehr gut erfüllt. Seitdem es in der Stdlib ist, schreibe ich meine Parser nicht mehr selbst.