In kleinen Skripten bringt Dir dieses Konstrukt keine Vorteile. Insbesondere wenn das Skript keinerlei Funktionen oder Klassen enthält. Diese Seite
http://matplotlib.org/gallery.html ist voll mit hochwertigen Beispiel-Skripten und es wird keine spezielle main() Funktion benötigt. Wenn ein Konstrukt keine Vorteile bringt, dann sollte es weggelassen werden. Hier z.B. ein kleines Beispiel-Skript, das einen 2D-Plot erzeugt ohne main() Funktion
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
x_1d = np.linspace(-3,3,601)
y_1d = np.linspace(-2,2,401)
x_2d, y_2d = np.meshgrid(x_1d, y_1d)
z_2d = 1/(x_2d**2 + y_2d**2 + 1) * np.cos(np.pi * x_2d) * np.cos(np.pi * y_2d)
plt.figure()
plt.pcolormesh(x_2d, y_2d, z_2d)
plt.gca().set_aspect("equal")
plt.show()
und hier mit main() Funktion
Code: Alles auswählen
import numpy as np
import matplotlib.pyplot as plt
def main():
x_1d = np.linspace(-3,3,601)
y_1d = np.linspace(-2,2,401)
x_2d, y_2d = np.meshgrid(x_1d, y_1d)
z_2d = 1/(x_2d**2 + y_2d**2 + 1) * np.cos(np.pi * x_2d) * np.cos(np.pi * y_2d)
plt.figure()
plt.pcolormesh(x_2d, y_2d, z_2d)
plt.gca().set_aspect("equal")
plt.show()
if __name__ == '__main__':
main()
Zähl die Zeilen, dann weist Du was besser ist.
Es gibt allerdings auch viele Situationen bei denen eine main() Funktion sehr nützlich ist.
Wenn Du z.B. in der GUI-Programmierung in einem Modul ein MainWindow entwickelst und der Code zum Starten des MainWindows und damit der ganzen Anwendung im selben Modul sein soll. Wenn Du das ohne main() Funktion machst, dann hast Du keine Möglichkeit das Fenster auch von woanders zu benutzen. Auch bei einem Dialog kann das Sinn machen. Ein Dialog soll eigentlich nur vom Hauptfenster aus aufgerufen werden, trotzdem bekommt das Modul mit dem Dialog eine main() Funktion, damit man beim Entwickeln mal eben sehen kann, ob das Layout und die Beschriftung passt.
Ein Modul, das eigentlich nur für den Import bestimmt ist, kann eine main() Funktion enthalten. Diese main() Funktion kann beispielhaft zeigen, wie die Funktionen und Klassen des Moduls zu benutzen sind oder diese testen.
Manchmal wird die main() Funktion auch eingesetzt um zu zeigen, dass man nicht blos skriptet, sondern wie in Java oder C++ Anwendungen entwickelt.