Fungsi utama Python

Dalam tutorial ini, kita akan belajar bagaimana menggunakan atribut __name__ program Python untuk menjalankannya secara dinamik dalam konteks yang berbeza.

Apakah fungsi utama () di Python?

Beberapa bahasa pengaturcaraan memiliki fungsi khusus yang disebut main()yang merupakan titik pelaksanaan untuk file program. Bagaimanapun, jurubahasa Python menjalankan setiap baris secara bersiri dari bahagian atas fail dan tidak mempunyai main()fungsi eksplisit .

Python menawarkan konvensyen lain untuk menentukan titik pelaksanaan. Salah satunya menggunakan main()fungsi dan sifat __name__ fail python.

Apakah __nama__ di Python?

Pemboleh ubah __name__ adalah pemboleh ubah Python builtin khas yang menunjukkan nama modul semasa.

Ia mempunyai nilai yang berbeza bergantung pada tempat kita menjalankan fail Python. Mari lihat contohnya.

Menjalankan Fail Python sebagai Skrip

Katakan kita mempunyai fail Python bernama helloworld.py dengan kandungan berikut:

 print(__name__) 

Sekiranya kita menjalankan helloworld.py dari baris arahan, maka ia berjalan sebagai skrip Python. Kita boleh menjalankan program Python menggunakan arahan berikut:

$ python helloworld.py

Apabila kita menjalankan program sebagai skrip, nilai pemboleh ubah __name__ ditetapkan ke __main__. Oleh itu, keluaran program berikut adalah:

 __main__ 

Menjalankan fail Python sebagai Modul

Kita juga boleh menjalankan fail Python sebagai modul. Untuk ini, kita mesti mengimport fail ini ke program Python yang lain. Mari lihat contohnya.

Katakan kita mempunyai fail Python yang disebut main.py dalam direktori yang sama dengan fail heloworld.py. Ia mempunyai kandungan berikut:

 import helloworld 

Semasa kami menjalankan fail ini, kami akan mempunyai output berikut:

 Hai dunia 

Di sini, kita dapat melihat bahawa mengimport modul juga menjalankan semua kod dalam fail modul.

Tetapi, kita dapat melihat bahawa bukannya memaparkan __main__, program ini memaparkan nama modul iaitu helloworld.

Ini kerana, dalam konteks menjalankan fail Python sebagai modul, nama modul itu sendiri diberikan kepada pemboleh ubah __name__.

Menggunakan jika bersyarat dengan __nama__

Sekarang setelah kita memahami bagaimana pemboleh ubah __name__ diberikan nilai, kita dapat menggunakan ifklausa bersyarat untuk menjalankan fail Python yang sama secara berbeza dalam konteks yang berbeza.

Mari lihat contohnya.

Andaikan kita menukar kandungan fail helloworld.py kepada yang berikut:

 def main(): print("Hello World") if __name__=="__main__": main() 

Sekarang, ketika kita menjalankannya sebagai skrip melalui baris perintah, outputnya adalah:

 Hai dunia 

Namun, ketika kita menjalankannya sebagai modul dengan mengimportnya dalam file main.py , tidak ada output yang dipaparkan kerana main()fungsi tersebut tidak dipanggil.

Di sini, kami telah membuat main()fungsi tersuai dalam fail helloworld.py . Ia dilaksanakan hanya ketika program dijalankan sebagai skrip mandiri dan bukan sebagai modul yang diimport.

Ini adalah kaedah standard untuk menentukan main()fungsi secara eksplisit di Python. Ini adalah salah satu kes penggunaan yang paling popular dari pemboleh ubah __name__ dari fail Python.

Artikel menarik...