2012-08-02 18 views
6

Bu sıklıkta (varyasyon a) görebilirsiniz:Ana() işlevi neden '__main__' içeriğinde tanımlanmamış?

def main(): 
    do_something() 
    do_sth_else() 

if __name__ == '__main__': 
    main() 

Ve şimdi merak ediyorum neden değil bu (varyasyon b):

if __name__ == '__main__': 
    do_something() 
    do_sth_else() 

Ya en az bu (varyasyon c): ( ) main(), işlev çağrıları olmayabilir, sadece main() işlevinizde yapmak isteyebileceğiniz her şeyi temsil eder.

Peki neden insanlar diğerlerine göre varyasyon a tercih ediyor? Sadece tarz/his mi yoksa bazı gerçek nedenler var mı? Mümkünse, lütfen kaynakları da bağlayınız.

cevap

11

Neden hat kullanımını sadece kumanda etmek için main() işlevini sınırlamak?

modül kapsamında bir main() fonksiyonunu tanımlayarak, artık komut sarın ve denir nasıl değiştirebilir. Belki de sys.argv dosyasında varsayılan argümanları ayarlamak istersiniz, belki de kodu başka bir komut dosyasında yeniden kullanmak isteyebilirsiniz. Python kullanmanın iki yolu vardır çünkü

4

budur. Biri komut satırından diğerini başka bir komut dosyasından içe aktarırken. Komut satırından çalıştırdığınızda, main() fonksiyonunu çalıştırmak istiyorum ve bunu içe aktarırken bunu (sadece main() almak istediğiniz) ihtiyaç kadar main() fonksiyonunu çalıştırmak istemeyebilir.

İlgili konular