โมดูล (Module) ใน Python คือไฟล์ที่ประกอบด้วยโค้ด Python หลายบรรทัด ซึ่งสามารถนำไปใช้ซ้ำหรืออ้างอิงจากโปรแกรม Python อื่นๆ ได้ โปรแกรม Python ขนาดใหญ่ควรจัดระเบียบโดยแยกส่วนต่างๆ ไปอยู่ในโมดูลที่ต่างกัน ซึ่งจะช่วยให้การแก้ไขข้อผิดพลาด (Debugging) การปรับปรุง และการแพ็กเกจโปรแกรมมีประสิทธิภาพมากขึ้น
เพื่อใช้งานโมดูลในโปรแกรม Python ใดๆ เราต้องทำการนำเข้า (Import) โมดูลนั้นเข้ามาในโปรแกรมใหม่ก่อน หลังจากนำเข้าแล้ว ฟังก์ชัน เมธอด และตัวแปรต่างๆ จากโมดูลนั้นจะพร้อมใช้งานในโปรแกรมใหม่ทันที
การใช้คำสั่ง import
ลองสร้างไฟล์ชื่อ profit.py ซึ่งมีโปรแกรมสำหรับการคำนวณกำไรเปอร์เซ็นต์ ดังนี้:
ตัวอย่าง
def getprofit(cp, sp):
result = ((sp - cp) / cp) * 100
return result
ต่อไป เราต้องการใช้ฟังก์ชันข้างต้นในโปรแกรม Python อีกตัวหนึ่ง สามารถใช้คำสั่ง import เพื่ออ้างอิงโมดูลและฟังก์ชัน getprofit ได้
ตัวอย่าง
import profit perc = profit.getprofit(350, 500) print(perc)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้:
42.857142857142854
การใช้ from Module import
เราสามารถนำเข้าเฉพาะเมธอดหรือฟังก์ชันที่ต้องการจากโมดูลแทนที่จะนำเข้าโมดูลทั้งหมด โดยใช้คำสั่ง from Module import ตัวอย่างด้านล่างนำเข้าค่า pi จากโมดูล math เพื่อนำไปคำนวณ
ตัวอย่าง
from math import pi x = 30 * pi print(x)
ผลลัพธ์
94.24777960769379
การสำรวจโมดูล
หากต้องการทราบตำแหน่งที่ตั้งของโมดูลในตัว (Built-in modules) สามารถใช้โมดูล sys เพื่อดูได้ ในทำนองเดียวกัน หากต้องการทราบว่ามีฟังก์ชันอะไรบ้างในโมดูลใดโมดูลหนึ่ง สามารถใช้เมธอด dir() ได้
ตัวอย่าง
import sys import math print(sys.path) print(dir(math))
ผลลัพธ์
['', 'C:\\Windows\\system32\\python38.zip', 'C:\\Python38\\DLLs', 'C:\\Python38\\lib', 'C:\\Python38', 'C:\\Python38\\lib\\site-packages'] ['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'hypot', 'ldexp', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'trunc', ...]