Package dan __init__.py
Atur modul ke dalam package dengan struktur direktori yang tepat.
Package dan __init__.py adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 4 pelajaran total.
Apa Itu Paket?
Paket adalah direktori yang berisi berkas __init__.py dan satu atau beberapa modul. Python memperlakukan setiap direktori semacam itu sebagai paket yang dapat Anda impor.
mypackage/
__init__.py
utils.py
math_helpers.pyBerkas __init__.py
__init__.py dijalankan ketika paket diimpor. Berkas ini dapat kosong atau mengekspos nama-nama tertentu kepada pemanggil.
# mypackage/__init__.py
from .utils import helper
from .math_helpers import addMengimpor dari Paket
Gunakan notasi titik untuk mengimpor submodul atau nama yang ditentukan dalam __init__.py.
import mypackage
from mypackage import helper
from mypackage.math_helpers import add
print(add(2, 3))Subpaket
Paket dapat bertingkat: subdirektori dengan __init__.py-nya sendiri menjadi subpaket.
mypackage/
__init__.py
network/
__init__.py
http.pyImpor Relatif
Di dalam paket, gunakan impor relatif dengan titik di awal untuk merujuk modul saudara tanpa menuliskan nama paket secara langsung.
# mypackage/network/http.py
from ..utils import helper # two levels upImpor Absolut vs Relatif
Impor absolut tidak ambigu dan lebih disarankan. Impor relatif berguna di dalam paket besar untuk menghindari nama yang panjang.
# Absolute
from mypackage.utils import helper
# Relative (inside mypackage)
from .utils import helper__all__ dalam __init__.py
Tentukan __all__ untuk mengatur apa yang diekspor oleh from package import *.
# mypackage/__init__.py
__all__ = ['helper', 'add']
from .utils import helper
from .math_helpers import addPaket Namespace (PEP 420)
Python 3.3+ mendukung paket namespace — direktori tanpa __init__.py. Ini berguna untuk membagi satu paket ke beberapa direktori.
# No __init__.py needed
# Just have the directory and import normally
import myns.moduleInisialisasi __init__ Paket
Gunakan __init__.py untuk menetapkan konstanta tingkat paket, mengonfigurasi pencatatan, atau memuat submodul berat secara malas.
# mypackage/__init__.py
import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())
VERSION = '1.0.0'Mendistribusikan Paket
Tambahkan pyproject.toml atau setup.py agar paket Anda dapat dipasang dengan pip.
# pyproject.toml excerpt
[project]
name = "mypackage"
version = "1.0.0"
# Install locally
# pip install -e .Memeriksa Atribut Paket
Gunakan __file__, __path__, dan __name__ untuk memeriksa metadata paket saat runtime.
import mypackage
print(mypackage.__file__) # path to __init__.py
print(mypackage.__path__) # list of directory paths
print(mypackage.__name__) # 'mypackage'Pemeriksaan Singkat
Berkas apa yang menjadikan sebuah direktori sebagai paket Python?
Ringkasan
Paket mengatur modul ke dalam direktori menggunakan __init__.py. Gunakan impor absolut untuk kejelasan, impor relatif di dalam paket, dan __all__ untuk mengatur API publik.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Package dan __init__.py” gratis?
Ya — teks lengkap “Package dan __init__.py” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Package dan __init__.py”?
Atur modul ke dalam package dengan struktur direktori yang tepat. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.
Berapa lama pelajaran “Package dan __init__.py” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Membuat dan Mengimpor Modul
- Pustaka Standar Python
- Package dan __init__.py
- Menginstal Package dengan pip