Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การทำความเข้าใจ Code Reuse และ Modularity ใน Python 3


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 หรือเวอร์ชันก่อนหน้า