0Pricing
Python Academy · Pelajaran

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.py

Berkas __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 add

Mengimpor 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.py

Impor 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 up

Impor 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 add

Paket 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.module

Inisialisasi __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

  1. Membuat dan Mengimpor Modul
  2. Pustaka Standar Python
  3. Package dan __init__.py
  4. Menginstal Package dengan pip
← Kembali ke Python Academy