Introduction to Object-Oriented Programming (OOP)?
OOP หมายถึง Object-Oriented Paradigm และถูกอ้างถึงว่าเป็นหัวใจของวิธีการเขียนโปรแกรม รวมถึงหลายแนวคิดเช่น polymorphism, encapsulation, data hiding, data abstraction, inheritance และ modularity
OOP ให้ข้อมูลเป็นสิ่งสำคัญที่สุด และให้ interface ผ่านฟังก์ชันที่เกี่ยวข้องกับมัน ออบเจกต์เป็นเอนทิตี้ที่เพียงพอต่อตัวเอง (self-sufficient) หมายถึงมีตัวแปรและฟังก์ชันที่เกี่ยวข้องทั้งหมดอยู่ด้วย ออบเจกต์มีลักษณะเฉพาะ (variables) และคุณสมบัติ (methods) เรียกว่า attributes
Modularity คืออะไร?
Modularity หมายถึงการแบ่งโค้ดเป็นโมดูล สร้างพวกมันก่อน ตามด้วยการเชื่อมโยง (linking) และสุดท้ายรวมกันเพื่อสร้างโปรเจกต์ที่สมบูรณ์ Modularity טיח re-usability และพยายามลดการซ้ำซ้อน
โมดูลใน Python คือไฟล์ที่มี definitions ของ Python ตามด้วย methods และ statements ชื่อโมดูลถูกสร้างจากชื่อไฟล์โดยการลบ suffix ".py" ตัวอย่างเช่น ถ้าชื่อไฟล์คือ prime.py ชื่อโมดูลคือ prime มาสร้างโมดูลกัน เราบันทึกโค้ดต่อไปนี้ในไฟล์ prime.py −
ตัวอย่าง
def isPrimenot(n):
# Corner cases
if (n <= 1):
print("False")
if (n <= 3):
print("True")
if (n % 2 == 0 or n % 3 == 0):
print("False")
i = 5
while(i * i <= n):
if (n % i == 0 or n % (i + 2) == 0):
print("False")
i = i + 6
print("True")
เมื่อเรารันคอมมานด์ไลน์ เราสังเกตเห็น;
Command Line
>>> import prime >>> prime.isPrimenot(3) True >>> prime.isPrimenot(8) False
เราสามารถกำหนดชื่อท้องถิ่น (local name) ให้โมดูลได้เช่นกัน และนำฟังก์ชันไปใช้งานตามที่อธิบายด้านล่าง
Command Line
>>> import prime >>> p = prime.isPrimenot >>> p(8) False
เราสามารถ import หลายโมดูลพร้อมกันและสังเกตการนำไปใช้งานบนคอมมานด์ไลน์พร้อมกัน
Command Line
>>> import prime >>> import math >>> p = prime.isPrimenot >>> p(math.log(2, math.pow(2, 8))) False
ด้วยวิธีนี้ โค้ดสามารถใช้ได้ที่หลายที่โดยไม่ต้องเขียนซ้ำๆ ในโค้ด ดังนั้น Modularity รองรับ code reusability และ minimal dependencies
Tip: แต่ละโมดูลสามารถ import ได้เพียงครั้งเดียวใน session interpreter เดียว หากเราเปลี่ยนเนื้อหาโมดูลหรือต้องการ reload เราต้อง restart interpreter อีกครั้ง
การ reload นี้ยังสามารถทำด้วยตนเองได้โดยรันคำสั่ง −
>>> reload(modulename)
สรุป
ในบทความนี้ เราได้เรียนรู้เกี่ยวกับ reusability ของโค้ด และแนวคิดของ modularity ใน Python 3.x หรือเวอร์ชันก่อนหน้า