Apakah tujuan dan faedah menggunakan suis `-m` dalam Python?

Patricia Arquette
Lepaskan: 2024-11-28 04:27:13
asal
285 orang telah melayarinya

What are the purposes and benefits of using the `-m` switch in Python?

Apakah Tujuan Suis -m?

Latar Belakang: Masalahnya

Pertimbangkan dua coretan kod berikut:

python -m mymod1 mymod2.py args
Salin selepas log masuk
python mymod1.py mymod2.py args
Salin selepas log masuk

Dalam kedua-dua kes, mymod1.py dipanggil dan sys.argv ditetapkan kepada ['mymod1.py', 'mymod2.py', 'args']. Ini menimbulkan persoalan: apakah tujuan suis -m?

Jawapan: Peranan -m

Suis -m mempunyai beberapa tujuan penting:

  1. Laksanakan Kod Python daripada Baris Perintah: Ia membolehkan anda melaksanakan kod Python daripada baris arahan dengan menyatakan nama modul dan bukannya nama fail. Ini berguna apabila anda mengetahui nama modul tetapi bukan nama fail, terutamanya untuk modul perpustakaan standard atau modul pihak ketiga.
  2. Tambah Direktori ke sys.path: Python menentukan nama fail modul berdasarkan pada sys.pathnya. Suis -m menambah direktori semasa ke sys.path, membolehkan anda mengimport modul daripada direktori semasa.
  3. Laksanakan Kod dengan Import Relatif: Apabila melaksanakan modul dengan import relatif daripada arahan baris, suis -m menetapkan pembolehubah __package__ kepada modul induk bagi nama modul yang ditentukan. Ini membolehkan import relatif berfungsi dengan betul.

Kes Penggunaan

Dua kes penggunaan yang ketara untuk suis -m ialah:

  1. Running Standard Perpustakaan atau Modul Pihak Ketiga: Jika anda tahu nama modul tetapi bukan nama fail, anda boleh menggunakan -m untuk menjalankan ia daripada baris arahan, cth., python -m http.server.
  2. Melaksanakan Pakej Tempatan dengan Import: Anda boleh melaksanakan pakej tempatan yang mengandungi import mutlak atau relatif menggunakan -m, tanpa perlu untuk memasangnya. Ini serupa dengan menggunakan pip install -e . dalam mod pembangunan.

Perbandingan Terperinci

Untuk menggambarkan perbezaan antara kaedah pelaksanaan modul, berikut ialah perbandingan terperinci:

Pelaksanaan melalui Penyata Import:

  • sys.path ialah tidak diubah suai.
  • __name__ ditetapkan kepada nama modul mutlak.
  • __pakej__ ditetapkan kepada pakej induk segera.
  • __init__.py dinilai untuk semua pakej dan modul kod .

Pelaksanaan melalui Barisan Perintah dengan Nama fail:

  • sys.path diubah suai untuk memasukkan direktori induk nama fail.
  • __name__ ditetapkan kepada '__main__'.
  • __package__ ditetapkan kepada Tiada.
  • __init__.py tidak dinilai untuk sebarang pakej.

Pelaksanaan melalui Baris Perintah dengan Nama Modul:

  • sys.path diubah suai untuk memasukkan direktori semasa.
  • __name__ ditetapkan kepada '__main__'.
  • __package__ ditetapkan kepada pakej induk segera bagi nama modul.
  • __init__.py dinilai untuk semua pakej dan kod modul.

Kesimpulan

Suis -m ialah alat serba boleh yang meningkatkan keupayaan pelaksanaan Python. Ia mendayakan pelaksanaan modul yang mudah, menggabungkan ciri pengimportan dan pelaksanaan baris arahan serta membenarkan pelaksanaan pakej tempatan dengan import relatif.

Atas ialah kandungan terperinci Apakah tujuan dan faedah menggunakan suis `-m` dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan