บทที่ 3.3: โมดูลและแพ็กเกจ (Modules & Packages)
เอกสารนี้อธิบายเกี่ยวกับการแบ่งโครงสร้างโค้ดด้วยโมดูล (Module) การจัดหมวดหมู่ด้วยแพ็กเกจ (Package) การนำเข้าไลบรารีมาตรฐาน (Standard Library) และการใช้งาน if __name__ == "__main__":
1. โมดูลและการนำเข้า (Modules & Importing)
โมดูล (Module) ใน Python คือไฟล์ที่มีนามสกุล .py ซึ่งบรรจุโค้ด ตัวแปร ฟังก์ชัน หรือคลาส เพื่อนำมาใช้งานซ้ำในไฟล์อื่น
1.1 รูปแบบการนำเข้า (Import Statements)
# 1. นำเข้าทั้งโมดูล
import math
print(math.sqrt(16)) # Output: 4.0
# 2. นำเข้าเฉพาะฟังก์ชัน หรือคลาสที่ต้องการ
from math import pi, pow
print(pi) # Output: 3.141592653589793
# 3. การตั้งชื่อนามแฝง (Alias) ด้วย as
import math as m
print(m.floor(3.9)) # Output: 3
from math import factorial as fact
print(fact(5)) # Output: 120
2. โมดูลมาตรฐานที่สำคัญ (Built-in Standard Library)
Python มาพร้อมกับไลบรารีพื้นฐานจำนวนมากที่สามารถเรียกใช้งานได้ทันทีโดยไม่ต้องติดตั้งเพิ่ม:
import os
import sys
import random
import datetime
# os: การจัดการระบบปฏิบัติการและไฟล์
current_dir = os.getcwd()
# sys: ข้อมูลตัวแปลภาษาและสภาพแวดล้อมระบบ
python_version = sys.version
# random: การสุ่มข้อมูล
random_num = random.randint(1, 100)
chosen_item = random.choice(["apple", "banana", "cherry"])
# datetime: การจัดการวันเวลา
now = datetime.datetime.now()
formatted_now = now.strftime("%Y-%m-%d %H:%M:%S")
3. การสร้างโมดูลและแพ็กเกจของตนเอง (Custom Modules & Packages)
3.1 การสร้าง Custom Module
สร้างไฟล์ชื่อ my_math.py:
นำไปใช้งานในไฟล์ main.py:
3.2 การสร้าง Custom Package
แพ็กเกจ คือโฟลเดอร์ที่รวบรวมโมดูลหลายๆ ไฟล์ไว้ด้วยกัน โดยภายในโฟลเดอร์ควรมีไฟล์ __init__.py เพื่อระบุขอบเขตการนำเข้า
โครงสร้างไดเรกทอรี:
การนำไปใช้งานใน main.py:
4. โครงสร้าง if __name__ == "__main__":
ใช้สำหรับระบุว่า บล็อกโค้ดนี้จะทำงานเมื่อไฟล์นี้ถูกสั่งรันโดยตรงเท่านั้น และจะไม่ทำงานเมื่อไฟล์นี้ถูกนำเข้า (import) ไปใช้งานในไฟล์อื่น