A modul ialah satu fail .py; a paket ialah direktori modul. Import membenarkan anda menggunakan kod dari modul lain, mengorganisir program ke dalam potongan yang boleh digunakan semula.
Modul dan import
(): 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
Fail __init__.py menandakan direktori sebagai paket (dan boleh menjalankan kod inisialisasi paket atau menentukan apa yang from package import * tunjukkan).
if __name__ == "__main__"def main():
print("running as a script")
if __name__ == "__main__": # True only when run directly, not when imported
main()
Ini membenarkan fail bertindak sebagai modul yang boleh diimport dan skrip yang boleh dijalankan — kod di bawahnya berjalan hanya apabila fail dilaksanakan secara langsung (python file.py), bukan apabila diimport. 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 kod Python ke dalam unit yang boleh digunakan semula dan mudah diuruskan daripada satu fail raksasa — asas kepada mana-mana projek yang tidak remeh.
Memahami gaya import, struktur paket (__init__.py), idiom if __name__ == "__main__" (kelakuan modul/skrip dwi hala), dan cara Python mencari modul (sys.path) adalah penting untuk menstrukturkan projek, menggunakan semula kod, dan menggunakan perpustakaan standard dan ekosistem PyPI yang luas.
Ralat import dan kekeliruan struktur adalah halangan awal yang biasa diselesaikan oleh pengetahuan ini.