Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah yang dilakukan jika __name__ =&#__main__&# lakukan dalam Python?

Apakah yang dilakukan jika __name__ =&#__main__&# lakukan dalam Python?

PHPz
Lepaskan: 2024-07-29 07:00:03
asal
546 orang telah melayarinya

What does if __name__ =

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__)
Salin selepas log masuk

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()

Salin selepas log masuk

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()
Salin selepas log masuk

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!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan