7 Stimmen

Ausführen von Modulen als Skripte

Ich lerne jetzt Python, und heute, ich traf ein Problem in http://docs.python.org/release/2.5.4/tut/node8.html

6.1.1 Ausführen von Modulen als Skript

Wenn Sie ein Python-Modul mit

python fibo.py <arguments>

wird der Code des Moduls genauso ausgeführt, wie wenn Sie es importiert hätten, aber mit dem __name__ auf "__main__" gesetzt. Das bedeutet, dass Sie diesen Code am Ende von Ihres Moduls:

if __name__ == "__main__":
    import sys`
    fib(int(sys.argv[1]))

können Sie die Datei sowohl als Skript als auch als ein importierbares Modul, da der Code der die Befehlszeile analysiert, läuft nur wenn das Modul als die "Haupt"-Datei ausgeführt wird:

$ python fibo.py 50 1 1 2 3 5 8 13 21 34

aber wenn ich das in der Shell mache, bekomme ich

File "<input>", line 1
python fibo.py 222
SyntaxError: invalid syntax

Wie wird das Skript korrekt ausgeführt?

fibo.py ist

def fib(n):
    a,b=0,1
    while b<n:
        print b,
        a,b = b,a+b

def fib2(n):
    result=[]
    a,b=0,1
    while b<n:
        result.append(b)
        a,b=b,a+b
    return result

if __name__ =="__main__":
    import sys
    fib(int(sys.argv[1]))

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X