eigene Definition ausführen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

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?
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

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.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

ok, aber nur "main()" würde auch gehen oder?
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Gehen tut vieles. Machen tut man es nicht, aber ich kann dich ja nicht dran hindern.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

ok :wink:
Antworten