Sebuah modul adalah satu file .py; sebuah paket adalah direktori modul. Impor memungkinkan Anda menggunakan kode dari modul lain, mengorganisir program menjadi bagian yang dapat digunakan kembali.
Modul dan impor
(): a + b
PI =
# main.py — different ways to import
import math_utils # import the whole module
math_utils.add(2, 3) # access via the module name
from math_utils import add, PI # import specific names
add(2, 3) # use directly
from math_utils import add as plus # import with an alias
import numpy as np # common aliasing convention
mypackage/
__init__.py ← marks it as a package (can be empty)
module_a.py
subpackage/
__init__.py
module_b.py
from mypackage.module_a import something
from mypackage.subpackage.module_b import other
File __init__.py menandai direktori sebagai paket (dan dapat menjalankan kode inisialisasi paket atau mendefinisikan apa yang from package import * ekspos).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Ini memungkinkan file bertindak sebagai modul yang dapat diimpor dan skrip yang dapat dijalankan — kode di bawahnya hanya berjalan ketika file dijalankan secara langsung (python file.py), bukan saat diimpor. Idiom Python yang hampir universal.
import sys
sys.path # the list of directories Python searches for imports
# includes: the current directory, installed packages (site-packages), stdlib
import os, json, datetime # standard library — "batteries included"
import requests # third-party — installed via pip from PyPI
Modul dan paket adalah cara Anda mengorganisir kode Python menjadi unit yang dapat digunakan kembali dan dapat dipertahankan daripada satu file raksasa — fundamental untuk proyek non-trivial apa pun.
Memahami gaya impor, struktur paket (__init__.py), idiom if __name__ == "__main__" (perilaku skrip/modul ganda), dan cara Python menemukan modul (sys.path) sangat penting untuk menyusun proyek, menggunakan kembali kode, dan menggunakan pustaka standar dan ekosistem PyPI yang luas.
Kesalahan impor dan kebingungan struktur adalah hambatan awal umum yang diselesaikan oleh pengetahuan ini.