Jadual Kandungan
Salah Faham Biasa
Apa gunanya?
Rumah pembangunan bahagian belakang Tutorial Python Semasa menulis skrip Python, pastikan anda menambah ini!

Semasa menulis skrip Python, pastikan anda menambah ini!

Apr 14, 2023 pm 07:40 PM
python fungsi Skrip

Orang yang menggunakan Python sering menulis beberapa skrip sama ada untuk meningkatkan kecekapan kerja atau untuk memenuhi keperluan tertentu, skrip Python adalah perkara biasa dan berguna.

Namun, baru-baru ini saya menemui masalah yang saya tidak perasan sebelum ini, iaitu sama ada menambah jika __name__ == "__main__":
Kenyataan ini sebenarnya memberi impak yang besar terhadap penggunaan skrip. Dan terdapat banyak ilmu di dalamnya.

Salah Faham Biasa

Ramai rakan lebih bersahaja apabila menulis skrip ringkas ditulis terus tanpa fungsi dan dilaksanakan secara berurutan. Untuk skrip yang lebih kompleks, fungsi boleh ditambah. Cara penulisan ini kurang boleh dibaca, dan orang ramai selalunya tidak dapat mencari entri dan urutan pelaksanaan program sepintas lalu.

Cara yang disyorkan oleh komuniti Python adalah dengan menambah pernyataan berikut semasa menulis skrip:

def main():
# do something
print("do something.")

if __name__ == "__main__":
main()
Salin selepas log masuk

Apabila kebanyakan orang melihat ini, mereka akan berkata, apakah ini? penting sama ada menambah atau tidak!

Jangan terlalu sibuk dan meremehkan, mari kita bincangkan dengan teliti bersama-sama!

Apa gunanya?

Terangkan secara terperinci jika Sebelum ini __name__ == '__main__' berfungsi, mari kita rasakan secara intuitif daripada contoh mudah.

# const.py
 
PI = 3.14
 
def train():
print("PI:", PI)
 
train()
Salin selepas log masuk
# area.py
 
from const import PI
 
def calc_round_area(radius):
return PI * (radius ** 2)
 
def calculate():
print("round area: ", calc_round_area(2))
 
calculate()
Salin selepas log masuk

Mari kita lihat hasil larian area.py: Pembolehubah PI

PI: 3.14
round area:12.56
Salin selepas log masuk

, apabila berjalan, fungsi train() dalam const. py <🎜 Pencetakan dalam > juga dibawa, tetapi kami hanya merujuk pembolehubah dan bukan fungsi, jadi inilah yang kami tidak mahu lihat.

Penyelesaian kepada masalah ini juga sangat mudah Kita hanya perlu menambah ayat pada const.py:

PI = 3.14

def train():
 print("PI:", PI)

if __name__ == "__main__":
 train()
Salin selepas log masuk
Jalankan area.py sekali lagi, outputnya adalah seperti. berikut:

round area:12.56
Salin selepas log masuk
Inilah yang kami jangkakan.

Program berjalan masuk

Daripada contoh di atas, anda boleh mendapati bahawa jika tiada if __name__=="__main__":, apabila mengimport fail sebagai area.py, semua kod dalam const.py

akan dilaksanakan, dan selepas menambahkannya, hanya bahagian kod yang diimport akan dijalankan.

Ini adalah kesan yang jelas jika __name__=="__main__": Sebenarnya, jika __name__=="__main__": adalah bersamaan dengan kemasukan program

Simulasi Python. Oleh kerana modul merujuk antara satu sama lain, modul yang berbeza mungkin mempunyai takrifan sedemikian, tetapi hanya terdapat satu program kemasukan yang dipilih bergantung pada nilai __name__.

Mari kita lihat program kecil sekali lagi:

print("look here")
print(__name__)
 
if __name__ == '__main__':
print("I'm test.py")
Salin selepas log masuk
Keputusan larian program adalah seperti berikut:

look here
__main__
I'm test.py
Salin selepas log masuk
Boleh didapati bahawa nilai pembolehubah __name__ pada masa ini ialah __main__, jadi cetak "Saya

test.py". Jika anda menjalankan fail lain dan memanggil fail ini melalui fail yang sedang berjalan, penyata tidak akan dicetak kerana kemasukan program tidak betul dan penyata tidak akan dilaksanakan.

Spesifikasi kod

Dengan if __name__=="__main__": setara dengan Python

Atur cara ini juga mempunyai fungsi kemasukan Kita boleh mengetahui dengan jelas bahawa logik program bermula dengan Di mana, sudah tentu kita perlu secara sedar meletakkan logik permulaan program di sini. Malah, ini juga pendekatan yang disyorkan oleh PyCharm
.

Mengapa banyak bahasa pengaturcaraan yang sangat baik, seperti C, Java, Golang dan C++, mempunyai fungsi kemasukan

utama, saya fikir sebab yang sangat penting ialah kemasukan program adalah bersatu dan mudah dibaca.

Senario berbilang proses berguna

Jika anda menggunakan berbilang proses untuk pengkomputeran selari, kod yang serupa dengan ini:

import multiprocessing as mp

def useful_function(x):
return x * x

print("processing in parallel")
with mp.Pool() as p:
results = p.map(useful_function, [1, 2, 3, 4])
print(results)
Salin selepas log masuk
Jalankan kod ini dan kawal stesen akan terus mencetak:

processing in parallel
processing in parallel
processing in parallel
processing in parallel
processing in parallel
processing in parallel
processing in parallel
processing in parallel
processing in parallel
Salin selepas log masuk
dan program akan terus melaporkan RuntimeError.

Jika anda menambah if __name__=="__main__": , atur cara akan diteruskan seperti yang dijangkakan:

import multiprocessing as mp

def useful_function(x):
return x * x

if __name__ == '__main__':
print("processing in parallel")
with mp.Pool() as p:
results = p.map(useful_function, [1, 2, 3, 4])
print(results)
Salin selepas log masuk
Python berbilang program adalah untuk memulakan berbilang jurubahasa Python , setiap jurubahasa Python akan mengimport skrip anda dan salin salinan pembolehubah global dan fungsi untuk proses anak Jika terdapat jika

__name__=="__main__":, maka kod di belakangnya tidak akan dilaksanakan berulang kali. Jika tidak, kod yang mencipta berbilang proses akan
diimport dan dilaksanakan, dengan itu mencipta proses anak secara rekursif tak terhingga

Ringkasan

jika __name__==" __main__": Walaupun ia tidak wajib, saya amat mengesyorkan anda mengikut spesifikasi ini semasa menulis skrip.

Atas ialah kandungan terperinci Semasa menulis skrip Python, pastikan anda menambah ini!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

PHP dan Python: Contoh dan perbandingan kod PHP dan Python: Contoh dan perbandingan kod Apr 15, 2025 am 12:07 AM

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek dan keutamaan peribadi. 1.PHP sesuai untuk pembangunan pesat dan penyelenggaraan aplikasi web berskala besar. 2. Python menguasai bidang sains data dan pembelajaran mesin.

Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Python vs JavaScript: Komuniti, Perpustakaan, dan Sumber Apr 15, 2025 am 12:16 AM

Python dan JavaScript mempunyai kelebihan dan kekurangan mereka sendiri dari segi komuniti, perpustakaan dan sumber. 1) Komuniti Python mesra dan sesuai untuk pemula, tetapi sumber pembangunan depan tidak kaya dengan JavaScript. 2) Python berkuasa dalam bidang sains data dan perpustakaan pembelajaran mesin, sementara JavaScript lebih baik dalam perpustakaan pembangunan dan kerangka pembangunan depan. 3) Kedua -duanya mempunyai sumber pembelajaran yang kaya, tetapi Python sesuai untuk memulakan dengan dokumen rasmi, sementara JavaScript lebih baik dengan MDNWebDocs. Pilihan harus berdasarkan keperluan projek dan kepentingan peribadi.

Penjelasan terperinci mengenai Prinsip Docker Penjelasan terperinci mengenai Prinsip Docker Apr 14, 2025 pm 11:57 PM

Docker menggunakan ciri -ciri kernel Linux untuk menyediakan persekitaran berjalan yang cekap dan terpencil. Prinsip kerjanya adalah seperti berikut: 1. Cermin digunakan sebagai templat baca sahaja, yang mengandungi semua yang anda perlukan untuk menjalankan aplikasi; 2. Sistem Fail Kesatuan (Unionfs) menyusun pelbagai sistem fail, hanya menyimpan perbezaan, menjimatkan ruang dan mempercepatkan; 3. Daemon menguruskan cermin dan bekas, dan pelanggan menggunakannya untuk interaksi; 4. Ruang nama dan cgroups melaksanakan pengasingan kontena dan batasan sumber; 5. Pelbagai mod rangkaian menyokong interkoneksi kontena. Hanya dengan memahami konsep -konsep teras ini, anda boleh menggunakan Docker dengan lebih baik.

Cara menjalankan program di terminal vscode Cara menjalankan program di terminal vscode Apr 15, 2025 pm 06:42 PM

Dalam kod VS, anda boleh menjalankan program di terminal melalui langkah -langkah berikut: Sediakan kod dan buka terminal bersepadu untuk memastikan bahawa direktori kod selaras dengan direktori kerja terminal. Pilih arahan Run mengikut bahasa pengaturcaraan (seperti python python your_file_name.py) untuk memeriksa sama ada ia berjalan dengan jayanya dan menyelesaikan kesilapan. Gunakan debugger untuk meningkatkan kecekapan debug.

Python: Automasi, skrip, dan pengurusan tugas Python: Automasi, skrip, dan pengurusan tugas Apr 16, 2025 am 12:14 AM

Python cemerlang dalam automasi, skrip, dan pengurusan tugas. 1) Automasi: Sandaran fail direalisasikan melalui perpustakaan standard seperti OS dan Shutil. 2) Penulisan Skrip: Gunakan Perpustakaan Psutil untuk memantau sumber sistem. 3) Pengurusan Tugas: Gunakan perpustakaan jadual untuk menjadualkan tugas. Kemudahan penggunaan Python dan sokongan perpustakaan yang kaya menjadikannya alat pilihan di kawasan ini.

Adakah sambungan vscode berniat jahat? Adakah sambungan vscode berniat jahat? Apr 15, 2025 pm 07:57 PM

Sambungan kod VS menimbulkan risiko yang berniat jahat, seperti menyembunyikan kod jahat, mengeksploitasi kelemahan, dan melancap sebagai sambungan yang sah. Kaedah untuk mengenal pasti sambungan yang berniat jahat termasuk: memeriksa penerbit, membaca komen, memeriksa kod, dan memasang dengan berhati -hati. Langkah -langkah keselamatan juga termasuk: kesedaran keselamatan, tabiat yang baik, kemas kini tetap dan perisian antivirus.

Cara Memasang Nginx di CentOs Cara Memasang Nginx di CentOs Apr 14, 2025 pm 08:06 PM

CentOS Memasang Nginx memerlukan mengikuti langkah-langkah berikut: memasang kebergantungan seperti alat pembangunan, pcre-devel, dan openssl-devel. Muat turun Pakej Kod Sumber Nginx, unzip dan menyusun dan memasangnya, dan tentukan laluan pemasangan sebagai/usr/local/nginx. Buat pengguna Nginx dan kumpulan pengguna dan tetapkan kebenaran. Ubah suai fail konfigurasi nginx.conf, dan konfigurasikan port pendengaran dan nama domain/alamat IP. Mulakan perkhidmatan Nginx. Kesalahan biasa perlu diberi perhatian, seperti isu ketergantungan, konflik pelabuhan, dan kesilapan fail konfigurasi. Pengoptimuman prestasi perlu diselaraskan mengikut keadaan tertentu, seperti menghidupkan cache dan menyesuaikan bilangan proses pekerja.

Apa itu vscode untuk apa vscode? Apa itu vscode untuk apa vscode? Apr 15, 2025 pm 06:45 PM

VS Kod adalah nama penuh Visual Studio Code, yang merupakan editor kod dan persekitaran pembangunan yang dibangunkan oleh Microsoft. Ia menyokong pelbagai bahasa pengaturcaraan dan menyediakan penonjolan sintaks, penyiapan automatik kod, coretan kod dan arahan pintar untuk meningkatkan kecekapan pembangunan. Melalui ekosistem lanjutan yang kaya, pengguna boleh menambah sambungan kepada keperluan dan bahasa tertentu, seperti debuggers, alat pemformatan kod, dan integrasi Git. VS Kod juga termasuk debugger intuitif yang membantu dengan cepat mencari dan menyelesaikan pepijat dalam kod anda.

See all articles