Python Module & Package

   อัปเดตล่าสุด Feb. 3, 2024

Module และ Package ใน Python คืออะไร?

จริง ๆ แล้ว Module ก็คือ Python File  ส่วน Package ก็คือ Folder ที่เก็บโมดูลนั่นเอง โดยแพ็คเกจนั้นจะมีไฟล์  __init__.py  กำหนดไว้ในโฟลเดอร์นั้น ๆ เพื่อบ่งบอกว่าโฟลเดอร์นี้คือ Package นั่นเอง โดยการเข้าถึง module และ package ก็จะขึ้นอยู่กับลำดับชั้นไฟล์และแพ็คเกจนั้น ๆ (File and Package Hierarchy) ขอยกตัวอย่างดังภาพด้านล่าง 




และด้านล่างคือการจัดวางไฟล์และการอิมพอร์ตในรูปแบบต่าง ๆ ตามระดับของโมดูลและแพ็คเกจที่ถูกจัดวางไว้ในโปรเจคท์

การจัดวาง Package และ Module

"ในบทความนี้จะไม่ได้อธิบาย Module และ Package แบบละเอียดยิบ โดยจะแยกเป็นบทความในเรื่องนี้แบบเฉพาะและจะเขียนในบทความต่อ ๆ ไป แต่ก็เชื่อว่าในบทความนี้ หลาย ๆ คนคงจะเข้าใจเกี่ยวกับโมดูลและแพ็คเกจได้เป็นอย่างดีและมองภาพรวมกันออกในเบื้องต้นกันครับ" 



ลองมาทดสอบเขียนโค้ดอีกสักหน่อยเพื่อทำความเข้าใจเพิ่มเติม

 tutorial1.py

#tutorial.py
print("Hello, this is a Python tutorial from STACKPYTHON")


ซึ่งจากโค้ดด้านบนนั้นมีการตั้งชื่อไฟล์ว่า   tutorial1.py  และก็ไม่ได้มีคำสั่งอะไรมากมาย แสดงผลเพียงแค่คำสั่ง   print("Hello, this is a Python tutorial from STACKPYTHON") ซึ่งเจ้าไฟล์นี้แหละก็คือโมดูลอย่างสมบูรณ์แบบด้วยตัวมันเอง ถึงตรงนี้หลายคนเริ่มพอจะมองภาพออกแล้ว ดังนั้นขอเสริมให้ชัดขึ้นไปอีก

ทำการสร้างไฟล์ขึ้นมาอีกหนึ่งไฟล์ที่มีชื่อว่า  tutorial2.py

import tutorial1
print("Hello, This is the second Python file, tutorial2")

จากโค้ดด้านบนในไฟล์   tutorial2.py นั้นจะสามารถเรียกได้ว่า ได้ทำการอิมพอร์ตโมดูล  tutorial1   มาใช้งาน ซึ่งการเรียกโมดูลนี้จะไม่ได้เรียก  .py    ซึ่งเป็นนามสกุลของไฟล์เข้าเกี่ยวข้องแล้ว และเมื่อรันโค้ดจะได้ผลลัพธ์ดังนี้

Output

Hello, this is a Python tutorial from STACKPYTHON
Hello, This is the second Python file, tutorial2

ซึ่ง Hello ในบรรทัดแรกจะเป็นผลลัพธ์มาจากคำสั่ง   print("Hello, this is a Python tutorial from STACKPYTHON")    ในโมดูล    tutorial1   ซึ่งจะถูกรันก่อน เพราะได้ถูกอิมพอร์ตเข้ามาในส่วนบนสุดของไฟล์    tutorial2.py   ซึ่งแน่นอนว่าโดยปกติแล้วโค้ดนั้นจะทำงานตามลำดับ จากซ้ายไปขวาและบนลงมาล่างเสมอ

สรุป

  • Python Module คือ Python File 
  • Python Package คือ Folder ที่เก็บไพธอนโมดูลอีกที
  •  __init__.py  คือไฟล์เปล่า ๆ ที่บ่งบอกว่าโฟลเดอร์นี้คือ Package
  • ถ้าจะเรียกไฟล์ให้เรียกว่า   tutorial1.py tutorial2.py
  • ถ้าจะเรียกเป็นโมดูลให้ตัด  .py ออกเหลือแค่ชื่อ ก็จะได้เป็นโมดูลชื่อว่า  tutorial1 และ  tutorial2
  • โค้ดทำงานตามลำดับจากซ้ายไปขวา บนลงมาล่าง