Pakej ruang nama dalam Python membolehkan pengedaran perpustakaan berkaitan sebagai muat turun individu. Artikel ini menerangkan cara mentakrifkan pakej ruang nama untuk membenarkan berbilang produk Python berkongsi ruang nama biasa.
Pakej Ruang Nama Tersirat
Bermula dari Python 3.3, pakej ruang nama tersirat tersedia . Pakej ini ialah direktori tanpa fail __init__.py dan ia dicari apabila tiada modul ditemui dalam laluan semasa. Modul dan pakej boleh diimport di bawah pakej ruang nama tersirat menggunakan notasi titik.
Mencampurkan Pakej Biasa dan Ruang Nama
Untuk membenarkan saling kendali antara pakej biasa (dengan fail __init__.py) dan pakej ruang nama, kaedah pkgutil.extend_path() telah dilanjutkan. Pakej biasa yang mengisytiharkan sambungan ruang nama akan menambah pakej biasa dan ruang nama pada __path__ mereka.
Contoh Struktur Direktori
Pertimbangkan struktur direktori berikut:
├── path1 │ └── package │ ├── __init__.py │ └── foo.py ├── path2 │ └── package │ └── bar.py └── path3 └── package ├── __init__.py └── baz.py
Dengan pengisytiharan pkgutil.extend_path() yang sesuai, import berikut akan berjaya:
pkg_resources.declare_namespace()
Kaedah pkg_resources.declare_namespace() belum dikemas kini untuk menyokong pakej ruang nama tersirat.
Kesimpulan
Mentakrifkan pakej ruang nama membolehkan modulariti dan fleksibiliti dalam pembangunan pakej Python. Dengan memanfaatkan pakej ruang nama tersirat dan penyelesaian pkgutil.extend_path() lanjutan, pembangun boleh mencipta pakej ruang nama yang boleh dikongsi dan digunakan oleh berbilang produk.
Atas ialah kandungan terperinci Bagaimanakah Saya Mentakrifkan Pakej Ruang Nama untuk Pelbagai Produk Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!