Anda mungkin pernah melihat baris kod ini jika __name__=="__main__": banyak dalam skrip Python, tanpa mengetahui tujuan sebenar ia. Jangan risau kerana dalam blog ringkas ini kita akan membincangkan perkara ini
Apabila anda menjalankan program atau skrip secara langsung, Python secara automatik memberikan "utama" kepada pembolehubah nama khas. Ini pada asasnya dilakukan untuk menunjukkan bahawa fail itu ialah skrip "utama" di sini dan sedang dijalankan secara langsung dan bukannya diimport ke yang lain.
Untuk memahami perkara ini, buat skrip Python baharu, katakan namakannya "example.py" dan tulis:
print("Name of Script: ", __name__)
Jalankan ini dan anda akan melihat keluaran Nama Skrip: __main__. Ini semata-mata kerana fail sedang dijalankan secara langsung.
Sekarang, cipta satu lagi fail skrip python dan import example.py ke dalam fie ini. Jalankan dan anda akan melihat hasil yang berbeza yang mengatakan Nama Skrip: contoh. Ini semata-mata kerana sekarang daripada menjalankannya secara langsung, kami mengimport skrip dan menjalankannya secara tidak langsung. Oleh itu, Python kini menunjukkan nama sebenar fail.
Mari kita buat beberapa perubahan dalam fail contoh kita, supaya kita dapat memahaminya dengan lebih baik.
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
Sekarang jika anda menjalankan ini secara langsung semuanya akan dilaksanakan dengan sempurna tetapi jika anda menjalankan fail lain yang anda mengimport skrip example.py, anda akan melihat bahawa panggilan fungsi salam tidak dilaksanakan. Kenapa begitu?
Ini kerana jika bersyarat. Apa yang dilakukan oleh syarat ialah ia menyemak sama ada fail sedang dijalankan secara langsung atau tidak. Jika ia dijalankan secara langsung, utama akan ditugaskan kepada pembolehubah khas nama yang akan menjadikan syarat ini benar dan segala-galanya di dalam keadaan akan berjalan seperti biasa.
Tetapi sebaliknya, jika anda mengimportnya pada fail lain dan menjalankannya dari sana secara tidak langsung, maka pernyataan syarat tidak akan benar dan apa-apa yang diletakkan di dalam bersyarat tidak akan dilaksanakan.
Inilah kepentingan pernyataan bersyarat ini. Ia menghalang penterjemah Python daripada menjalankan baris kod yang tidak diperlukan secara automatik apabila kami mengimport skrip sebagai modul.
Walau bagaimanapun, kita boleh memanggil fungsi ini walaupun semasa kita mengimport skrip sebagai modul. Contohnya:
import example example.greet()
Dengan cara ini, kami boleh memanggil mana-mana fungsi daripada modul yang diimport dengan sempurna walaupun apabila bersyarat tidak berpuas hati.
Atas ialah kandungan terperinci Apakah yang dilakukan jika __name__ =__main__ lakukan dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!