လွယ်လွယ်ပြောရရင် Module ဆိုတာ Code တွေကို စနစ်တကျ ခွဲထည့်ထားတဲ့ ဖိုင်တစ်ဖိုင်ပါ။ Python မှာ .py ဖိုင်တစ်ဖိုင်က Module တစ်ခုပဲ။ ကိုယ်က အဲဒီ Module ကို import လုပ်လိုက်ရင်၊ အထဲက Function တွေကို ပြန်သုံးလို့ရတယ်။
ကျွန်တော် Python စသင်တုန်းက အံ့ဩခဲ့တာက ဒါပဲ။ ကိုယ်တိုင် တစ်ကြောင်းမှ မရေးရဘဲ import math လို့ရေးလိုက်ရုံနဲ့ math.sqrt(16) ဆိုပြီး Square Root တွက်လို့ရတယ်။ ဘယ်သူက တွက်ပေးနေတာလဲ ဆိုတော့ math ဆိုတဲ့ Module ထဲမှာ တစ်ယောက်ယောက်က ကြိုရေးထားတဲ့ Code ပဲ။
Module ကို ဘာနဲ့ ဥပမာပေးရမလဲ?
ကျွန်တော် ဥပမာပေးရရင် Module က စာအုပ်တစ်အုပ်လိုပဲ။ စာအုပ်တစ်အုပ်ထဲမှာ အကြောင်းအရာတစ်ခုနဲ့ဆိုင်တဲ့ စာတွေ အကုန်ပါတယ်။ ကိုယ်က အဲဒီစာအုပ်ကို စာကြည့်တိုက်ကနေ ငှားလာသလိုမျိုး import လုပ်တာ။ ပြီးရင် စာအုပ်ထဲက စာမျက်နှာကို လှန်ကြည့်သလို Function ကို ခေါ်သုံးတယ်။
ဥပမာ ကိုယ်က တွက်ချက်မှုတွေ လုပ်ချင်ရင်
import math
print(math.sqrt(16)) # 4.0
print(math.pi) # 3.141592653589793
math ဆိုတဲ့ Module ထဲမှာ sqrt Function, pi ဆိုတဲ့ ဂဏန်းတွေ ကြိုပါပြီးသား။ ကိုယ်က အဲဒါတွေကို ပြန်ရေးစရာ မလိုဘူး။
နောက်တစ်မျိုး — Random ဂဏန်းတွေ ထုတ်ချင်ရင်
import random
print(random.randint(1, 10))
ဒီလိုပဲ။ Random ဂဏန်းထုတ်တဲ့ ရှုပ်ထွေးတဲ့ Logic ကို တစ်ယောက်ယောက်က random Module ထဲမှာ ရေးပြီးသားမို့ ကိုယ်က တစ်ကြောင်းတည်းနဲ့ သုံးလို့ရတာ။
ကိုယ်တိုင် Module လုပ်ကြည့်မယ်
Module ဆိုတာ Python က ပေးထားတာတွေချည်းပဲ မဟုတ်ဘူး။ ကိုယ်တိုင်လည်း လုပ်လို့ရတယ်။ ဥပမာ mytools.py ဆိုတဲ့ ဖိုင်တစ်ဖိုင် ဖန်တီးပြီး
# mytools.py
def say_hello(name):
return "Hello, " + name + "!"
def double(n):
return n * 2
ပြီးရင် တခြားဖိုင်တစ်ခုကနေ
import mytools
print(mytools.say_hello("Min"))
print(mytools.double(5))
ဒီလိုသုံးလို့ရတယ်။ ဖိုင် နှစ်ဖိုင်က တစ်ဖိုင်နဲ့ တစ်ဖိုင် ချိတ်သွားတာပဲ။ ဒါကြောင့် Project ကြီးလာရင် Code တစ်ပုဒ်လုံးကို ဖိုင်တစ်ခုတည်းမှာ မရေးဘဲ၊ အလုပ်အလိုက် ဖိုင်တွေ ခွဲရေးကြတာ။
import လုပ်တဲ့ နည်းအမျိုးမျိုး
Python မှာ import လုပ်တဲ့ ပုံစံ အနည်းငယ်ရှိတယ်။ အသုံးအများဆုံးတွေကတော့
import math — Module တစ်ခုလုံးကို ယူလာတာ။ သုံးတဲ့အခါ math. ကို ရှေ့မှာ ခံရတယ်။from math import sqrt — လိုတဲ့ Function တစ်ခုတည်းကို ယူလာတာ။ သုံးတဲ့အခါ sqrt(16) လို့ တိုက်ရိုက်ခေါ်လို့ရတယ်။import math as m — နာမည်တိုနဲ့ ခေါ်တာ။ m.sqrt(16) ဆိုပြီး သုံးလို့ရတယ်။ pandas ကို pd လို့ ခေါ်တာမျိုးက ဒီနည်းပဲ။
ဘယ်နည်းကို သုံးသင့်လဲဆိုရင် ကျွန်တော့်အကြံက ဒါပဲ။ import math ပုံစံက အရှင်းဆုံးပဲ။ ဘယ်က လာတဲ့ Function လဲ ဆိုတာ သိသာတယ်။ from ... import * ဆိုတာမျိုးကိုတော့ ရှောင်ပါ။ ဘာတွေ ပါလာမှန်း မသိတော့ဘဲ နာမည်တွေ တိုက်မိတတ်တယ်။
Module နဲ့ Library, Package ဘာကွာလဲ?
အစက ကျွန်တော်လည်း ဒီစကားလုံးတွေကို ရောထွေးခဲ့တယ်။ ရိုးရိုးလေးခွဲရရင်
Module — .py ဖိုင်တစ်ဖိုင်။
Package — Module ဖိုင်များစွာကို Folder တစ်ခုထဲမှာ စုထားတာ။ ဥပမာ Django က Package ကြီးတစ်ခု။
Library — တစ်စုံတစ်ခု လုပ်ဖို့အတွက် သုံးလို့ရတဲ့ Module တွေ စုထားတာ။ requests ဆိုတာ Internet နဲ့ ဆက်သွယ်ဖို့ Library တစ်ခု။
တကယ်တော့ အသုံးတည့်ဆုံးအချက်က ဒါပဲ။ ကိုယ်က ပြဿနာတစ်ခုကို ဖြေရှင်းချင်တဲ့အခါ၊ အရင်ဆုံး တစ်ယောက်ယောက်က Module အနေနဲ့ ရေးပြီးသားလား လိုက်ရှာကြည့်ပါ။ Python ရဲ့ Standard Library မှာတင် အများကြီး ပါပြီးသား။ ပြီးတော့ pip နဲ့ သွင်းလို့ရတဲ့ Library တွေက သိန်းချီရှိတယ်။ ကိုယ်တိုင် ပြန်ရေးမယ့်အစား၊ ရှိပြီးသား Module ကို သုံးတတ်တာက Programmer တစ်ယောက်ရဲ့ တကယ့်ကျွမ်းကျင်မှုပဲ။
ဒီနေ့ကစပြီး import ဆိုတဲ့ စကားလုံးကို မြင်တိုင်း “အော်၊ တစ်ယောက်ယောက်ရေးထားတဲ့ ဖိုင်ကို ငှားသုံးနေတာပဲ” လို့ တွေးကြည့်ပါ။ Code ရေးရတာ တစ်ဝက်လောက် ပိုလွယ်သွားလိမ့်မယ်။ 🙂