Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

พัฒนาโปรแกรมด้วย Python Namespace Packages

Namespace Package ใน Python ช่วยกระจายโค้ดไปอยู่ในหลายโปรเจกต์แยกกัน เหมาะสำหรับปล่อยไลบรารีที่เกี่ยวข้องกันเป็นชิ้นส่วนแยกกัน (Separate Distributions)

โครงสร้างตัวอย่าง

Package-1/namespace/__init__.py
Package-1/namespace/module1/__init__.py
Package-2/namespace/__init__.py
Package-2/namespace/module2/__init__.py

ผู้ใช้สามารถ import ได้ทั้ง namespace.module1 และ namespace.module2 แม้มาจากแพ็กเกจต่างกัน

Python 3.3+ (Implicit Namespace Packages)

ไม่ต้องทำอะไรเพิ่มเติม แค่ อย่าสร้าง __init__.py ในไดเรกทอรีของ namespace package Python จะจัดการให้อัตโนมัติ

Python เก่ากว่า 3.3 (ใช้ pkgutil)

ใส่โค้ดต่อไปนี้ใน __init__.py ของทุกแพ็กเกจที่อยู่ใน namespace เดียวกัน:

from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)

โค้ดนี้จะเพิ่มไดเรกทอรีย่อยทั้งหมดที่ชื่อตรงกับแพ็กเกจเข้าไปใน __path__ ทำให้ import ได้ข้ามแพ็กเกจ