Rumah >pembangunan bahagian belakang >Tutorial Python >Bila Untuk Menggunakan Pilihan \'-m\' dan Bila Perlu Mengelakkannya Apabila Melaksanakan Kod Python?
Pelaksanaan Kod Python dengan Pilihan -m dan Tanpa
Penterjemah Python menawarkan pilihan -m, yang membolehkan anda melaksanakan modul perpustakaan sebagai skrip. Walau bagaimanapun, ia menimbulkan persoalan tentang perbezaan antara menggunakan dan tidak menggunakan pilihan -m.
Perbezaan dalam Menggunakan Kod Python
Apabila anda menggunakan kod Python, seperti a.py, tanpa pilihan -m, fail itu dianggap sebagai skrip. Sebaliknya, menggunakan pilihan -m, jurubahasa mengimport modul yang ditentukan sebagai skrip sebelum melaksanakan skrip utama.
Perbezaan ini penting apabila berurusan dengan pakej. Menjalankan pakej dengan python foo/bar/baz.py akan berbeza daripada menggunakan python -m foo.bar.baz. Dalam kes kedua, pakej foo.bar diimport, membolehkan import relatif.
pakej dan nama
Atribut __package__ memberikan nama pakej yang mengandungi modul. Apabila menggunakan skrip secara langsung, __package__ ditetapkan kepada Tiada, kerana fail itu bukan sebahagian daripada pakej. Walau bagaimanapun, apabila menggunakan pilihan -m untuk modul dalam pakej, __package__ ditetapkan kepada nama pakej (cth., 'foo.bar').
Atribut __name__ merujuk kepada nama modul semasa. Ia ditetapkan kepada '__main__' apabila melaksanakan skrip dan kekal sama walaupun semasa menggunakan modul dengan pilihan -m.
Penjelasan David Beazley
David Beazley menerangkan cara pilihan -m menjalankan modul perpustakaan sebagai skrip dalam modul __main__ sebelum melaksanakan skrip utama. Ini bermakna ruang nama global skrip diletakkan dalam modul __main__ dan atribut __name__ merujuk kepada modul ini.
Perbezaan Praktikal
Menggunakan pilihan -m boleh memberikan faedah berikut:
Walau bagaimanapun, menggunakan pilihan -m juga boleh mempunyai beberapa had:
Secara keseluruhan, memilih antara menggunakan atau tidak menggunakan - pilihan m bergantung pada keperluan khusus kod Python yang anda laksanakan dan sama ada anda perlu mengimport modul, mendayakan import relatif atau menjalankan pakej sebagai skrip.
Atas ialah kandungan terperinci Bila Untuk Menggunakan Pilihan \'-m\' dan Bila Perlu Mengelakkannya Apabila Melaksanakan Kod Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!