Mengimpor Modul Python – Panduan Praktis dengan Contoh
Apa itu Modul Python?
Modul adalah satu file Python yang dapat berisi variabel, fungsi, dan kelas. Saat Anda menamai file guru99.py, modul diakses sebagai guru99. Modul memungkinkan Anda membagi program besar menjadi bagian-bagian logis, menjaga kode Anda terorganisir dan dapat digunakan kembali.
Mengapa Mengimpor Modul?
Untuk menggunakan kode yang didefinisikan dalam file lain, Anda harus mengimpornya. Mengimpor memberi Anda akses ke fungsi, kelas, dan variabel modul, mirip dengan kata kunci import dalam bahasa seperti JavaScript, Java, atau Ruby.
Membuat dan Mengimpor Modul
Mari kita lakukan contoh sederhana.
Tata letak folder:
modtest/ test.py display.py
1. Buat test.py:
def display_message(): return 'Welcome to Guru99 Tutorials!'
2. Buat display.py dan impor test:
import test print(test.display_message())
Menjalankan display.py mencetak:
Welcome to Guru99 Tutorials!
Mengimpor Kelas dari Modul
Misalkan Car.py mendefinisikan kelas mobil:
class Car: brand_name = 'BMW' model = 'Z4' manu_year = '2020' def __init__(self, brand_name, model, manu_year): self.brand_name = brand_name self.model = model self.manu_year = manu_year def car_details(self): print('Car brand is', self.brand_name) print('Car model is', self.model) print('Car manufacture year is', self.manu_year) def get_car_brand(self): print('Car brand is', self.brand_name) def get_car_model(self): print('Car model is', self.model) Gunakan dalam display.py:
import Car car_det = Car.Car('BMW', 'Z5', 2020) print(car_det.brand_name) car_det.car_details() car_det.get_car_brand() car_det.get_car_model() Output:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Menggunakan from untuk Mengimpor Item Tertentu
Ketika Anda hanya membutuhkan beberapa fungsi atau variabel, impor langsung:
from test import display_message print(display_message())
Jika Anda mencoba menggunakan nama yang tidak diimpor, Python memicu NameError:
from test import display_message print(display_message1())
Mengimpor Semua dari Modul
Impor seluruh modul dengan import test dan awali nama dengan modul, atau impor semua nama ke namespace saat ini dengan from test import *. Yang terakhir nyaman tetapi dapat mencemari namespace.
Memahami dir()
Fungsi bawaan dir() mencantumkan semua atribut dari objek, termasuk yang didefinisikan dalam modul:
import Car print(dir(Car))
Untuk perpustakaan standar:
import json print(dir(json))
Bekerja dengan Paket
Paket adalah direktori yang berisi file __init__.py dan satu atau lebih modul. Misalnya:
Tata letak direktori:
mypackage/ __init__.py module1.py module2.py module3.py
Dalam module1.py:
def mod1_func1(): print('Welcome to Module1 function1') def mod1_func2(): print('Welcome to Module1 function2') # … Impor dengan alias:
import mypackage.module1 as mod1 mod1.mod1_func1() mod1.mod1_func2()
Jalur Pencarian Modul Python
Saat Python menyelesaikan impor, ia memeriksa:
- Direktori kerja saat ini.
- Modul bawaan.
- Direktori yang tercantum dalam
sys.path.
Periksa dengan:
import sys print(sys.path)
Menggunakan Alias untuk Modul
Berikan modul nama yang lebih pendek untuk meningkatkan keterbacaan:
import test as t print(t.display_message()) print(t.my_name)
Impor Absolut vs. Relatif
Dalam proyek multi-modul, Anda dapat merujuk ke modul melalui jalur lengkap (absolut) atau relatif terhadap file saat ini.
Contoh Impor Absolut
from package1.module1 import myfunc1 # atau import package1.module1 package1.module1.myfunc1()
Contoh Impor Relatif
from .module1 import myfunc1 # atau from .subpkg.module3 import myfunc3
Impor absolut lebih jelas dan kurang rawan kesalahan saat proyek dipindahkan, tetapi dapat menjadi bertele-tele. Impor relatif menjaga kode ringkas tetapi mungkin lebih sulit ditelusuri dalam proyek besar.
Kesimpulan Utama
- Modul memungkinkan Anda membagi kode Python ke dalam file terpisah.
- Gunakan
import atau from … import … untuk mengakses isi modul. - Alias (
as) membuat nama modul panjang lebih mudah digunakan. - Paket mengorganisir modul ke dalam direktori, dengan
__init__.py menandainya. - Pahami
sys.path untuk memecahkan masalah impor. - Pilih impor absolut untuk kejelasan, impor relatif untuk kesingkatannya.