Memahami Pelaksanaan Kod Python dengan dan Tanpa Pilihan -m
Pilihan -m dalam penterjemah Python membolehkan anda menjalankan modul perpustakaan sebagai skrip. Untuk memahami perbezaan antara menggunakan Python dengan pilihan -m dan tanpa itu, mari kita mendalami gelagat khusus mereka.
Invokasi Tanpa -m:
Apabila melaksanakan skrip tanpa pilihan -m, Python menganggap fail sebagai skrip biasa. Ia mengimport modul fail tetapi tidak menganggapnya sebagai pakej. Akibatnya, pembolehubah pakej ditetapkan kepada Tiada.
Invokasi Dengan -m:
Dengan adanya pilihan -m, Python mengimport modul atau pakej yang ditentukan sebagai skrip. Walau bagaimanapun, daripada hanya melaksanakan skrip, ia melaksanakannya dalam modul utama, yang dicipta untuk memegang ruang nama global. Pembolehubah pakej diberikan nilai rentetan yang mewakili nama pakej atau rentetan kosong untuk modul bukan pakej.
Kesan pada pakej Pembolehubah:
Perbezaan utama antara seruan ini terletak pada cara ia mempengaruhi pembolehubah pakej. Apabila menggunakan -m, Python mempertimbangkan kemungkinan menjalankan pakej dan menetapkan pakej dengan sewajarnya. Sebaliknya, apabila dilaksanakan tanpa -m, skrip sentiasa dianggap sebagai bukan pakej dan pakej ditetapkan kepada Tiada.
Pakej Berjalan:
Pakej hanya boleh dijalankan sebagai skrip menggunakan pilihan -m. Untuk berbuat demikian, Python mencari modul __main__.py dalam pakej dan melaksanakannya. Nama modul ini dan objek modul yang sepadan kekal sebagai '__main__' dan sys.modules['__main__'], masing-masing.
Implikasi Praktikal:
Penjelasan Beazley:
Penjelasan David Beazley merujuk kepada proses permulaan apabila menggunakan skrip dengan -m. Python mengimport skrip ke dalam modul utama, membenarkannya mengakses sumber modul utama dan melaksanakan seolah-olah ia adalah skrip utama.
Atas ialah kandungan terperinci Bagaimanakah Pilihan -m Mempengaruhi Pelaksanaan Kod Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!