Rumah > Artikel > pembangunan bahagian belakang > Apakah sebab mengapa Python tidak mempunyai fungsi utama?
Bahasa ini adalah bahasa yang disusun dan memerlukan kod untuk disusun menjadi binari boleh laku. Untuk membolehkan sistem pengendalian/pemuat but mencari permulaan program, fungsi sedemikian perlu ditakrifkan.
Ringkasnya, anda perlu menentukan permulaan yang penting dalam sejumlah besar kod boleh laku.
Tidak sukar untuk melihat bahawa untuk bahasa ini, fungsi utama adalah komponen yang sangat diperlukan.
Namun, apabila kita mengalihkan perhatian kita kepada Python, kita akan mendapati bahawa keadaannya agak berbeza.
Python ialah bahasa tafsiran, bahasa skrip. Proses berjalan dilakukan dari atas ke bawah, baris demi baris, yang bermaksud bahawa titik permulaannya diketahui.
Setiap fail .py ialah fail boleh laku yang boleh digunakan sebagai fail masukan untuk keseluruhan atur cara, yang bermaksud kemasukan atur cara adalah fleksibel dan tidak perlu mengikuti mana-mana konvensyen.
Kadang-kadang tidak perlu menentukan fail kemasukan semasa menjalankan projek Python (baris arahan lebih biasa, seperti "python -m http.server 8000"), mungkin kerana terdapat utama dalam fail py, dilaksanakan sebagai "fail" dalam pakej perisian.
Ringkasnya, Python sebagai bahasa skrip berbeza daripada bahasa yang disusun. Sama ada modul tunggal (iaitu fail .py), atau pakej perisian yang terdiri daripada berbilang modul, Python boleh memilih kaedah pelaksanaan yang fleksibel, yang sama sekali tidak seperti bahasa lain yang mesti menentukan titik masuk.
Dalam erti kata lain, Python tidak memerlukan pengaturcara untuk menentukan masukan bersatu dalam sintaks (sama ada ia fungsi, kelas atau sesuatu yang lain).
Sesetengah pelajar mungkin keliru kerana mereka sering melihat atau menulis kod berikut:
# main file def main(): …… if __name__ == '__main__': main()
Bukankah ini fungsi utama Python? Saya percaya ramai yang berpendapat begitu!
Tidak, bukan.
Kecuali nama fungsi adalah "utama", kod ini tiada kaitan dengan fungsi utama yang kami perkenalkan sebelum ini Fungsi ini tidak perlu dan ia tidak boleh menentukan susunan pelaksanaan program. Walaupun tiada fungsi utama seperti di atas, tidak akan ada masalah sintaks.
Sebab utama mengapa orang ingin menulis fungsi utama sebenarnya adalah untuk menekankan bahawa ini adalah fungsi utama dan berharap untuk menetapkannya secara buatan sebagai fungsi pertama yang akan dilaksanakan.
Mereka mungkin berpendapat bahawa fungsi dengan nama ini lebih mudah diingati.
Sebab mereka menulis nama ==‘utama’ mungkin kerana mereka ingin menunjukkan bahawa main() hanya melaksanakan skrip semasa Jalankannya hanya jika ia diimport ke dalam modul lain, tetapi bukan apabila ia diimport ke dalam modul lain.
Namun, saya secara peribadi tidak mengesyorkan cara penulisan ini.
Berikan contoh mudah, dengan mengandaikan hanya terdapat beberapa dozen baris kod, atau fail skrip melaksanakan fungsi mudah (crawler, atau melukis kura-kura, dsb.), tetapi semuanya mengikut dengan Ditulis dengan cara sebelumnya.
Tidak disyorkan untuk menulis jika nama == 'utama’, kerana:
Pertama sekali, jika terdapat hanya satu fail , maka fail ini tidak Boleh dieksport.
Kedua, jika terdapat berbilang fail, adalah amat disyorkan untuk tidak menulis pernyataan ini dalam fail entri (main.py). Secara teori, kandungannya tidak boleh dieksport untuk digunakan oleh modul lain, kerana ia adalah titik permulaan.
Akhir sekali, dalam kes berbilang fail, tidak disyorkan untuk menulis pernyataan ini dalam fail bukan masuk, kerana yang paling banyak boleh dilakukan oleh pernyataan ini ialah menulis beberapa kod ujian. Walaupun begitu, kod ujian harus ditulis secara berasingan ke direktori atau fail khusus.
Saya berasa sakit setiap kali melihat kod kekok ini. Mengapa menulis pernyataan if seperti itu? Anda tidak sepatutnya membungkus kod ini ke dalam fungsi sama sekali!
Atas ialah kandungan terperinci Apakah sebab mengapa Python tidak mempunyai fungsi utama?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!