Seite 1 von 1

eigene Definition ausführen

Verfasst: Freitag 16. März 2018, 09:31
von egon11
Ich möchte meine selbst geschriebene Definition anschließend ausführen.

z.b.

Code: Alles auswählen

def main():
    print('hallo')
Wenn ich jetzt "main()" eingebe, bekomme ich die Ausgabe.
Es gibt aber noch die Variante mit:

Code: Alles auswählen

if __name__ == '__main__':
Was wäre ratsamer zu nehmen?

Re: eigene Definition ausführen

Verfasst: Freitag 16. März 2018, 10:30
von __deets__
Das nennt man Funktion, auch wenn es mit def anfängt.

Und die beiden Dinge nutzt man nicht entweder oder. Sondern zusammen.

Das zweite Idiom mit „__main__“ ist ein Stück Code welches sicherstellt, das alles im eingerückten Block nur ausgeführt wird, wenn man dieses Skript direkt an den Python Interpreter übergeben hat. Also

python meinskript.py

Das unterscheidet sich von einem Import:

import meinskript

In letzterem wird der if-Ausdruck nicht wahr.

Und IN diesem Aussruck ruft man dann main() auf. Denn direkt Code auf Modulebene auszuführen bedeutet globale Daten zu erzeugen. Und das ist eine schlechte Idee.

Re: eigene Definition ausführen

Verfasst: Freitag 16. März 2018, 11:03
von egon11
ok, aber nur "main()" würde auch gehen oder?

Re: eigene Definition ausführen

Verfasst: Freitag 16. März 2018, 12:29
von __deets__
Gehen tut vieles. Machen tut man es nicht, aber ich kann dich ja nicht dran hindern.

Re: eigene Definition ausführen

Verfasst: Freitag 16. März 2018, 12:31
von egon11
ok :wink: