/blog/*

Package dan Module pada Python

Pada tulisan sebelumnya kita menggunakan Pendulum untuk manipulasi datetime. Untuk menggunakan module tersebut pertama kali kita harus meng-import module tersebut agar bisa digunakan pada script Python kita dengan cara import pendulum. Namun apakah anda tidak terpikirkan, bagaimana jika kita ingin membuat suatu module seperti pendulum yang bisa digunakan oleh orang lain?

Python memiliki suatu konsep untuk membungkus beberapa file menjadi suatu kesatuan yang bisa kita panggil(import) di file lain untuk kebutuhan reusable. Konsep itu dinamakan package dan module. Package merupakan kumpulan dari module-module, dimana module adalah file Python (.py) yang berisi kumpulan class, fungsi, variabel, dan code Python lainnya.

Package

Agar lebih mengerti konsep ini, lebih baik kita praktekan saja. Silakan buat sebuah project Python yang didalamnya terdapat sebuah package(folder) my_package. Berikut susunan project direktorinya:

your-project/
──── my_package/
     ──── init__.py
     ──── bar.py
     ──── foo.py
──── run.py

Didalam package my_package terdapat tiga buah file yang masing-masing berisi:

# __init__.py
from .foo import *
from .bar import *

print('__init__ is called')
# bar.py
def bar_func():
    print('This is bar function.')
# foo.py
def foo_func():
    print('This is a foo function')

# ambiguous function !!
def bar_func():
    print('This bar function is on FOO')

Dari ketiga file diatas, terdapat suatu file 'khusus' yang disebut __init__.py. File ini yang akan menyatukan semua module-module yang ada dalam package dan memperlakukan package itu sendiri seperti layaknya module. Perhatikan contoh program dibawah:

# run.py
import my_package as pkg

pkg.foo_func()
pkg.bar_func()

>>>'__init__ is called.'
>>>'This is foo function.'
>>>'This is bar function.'

Untuk code program dari artikel ini anda dapat melihatnya disini.