Devdit
💬 Python OOP คืออะไร ทำไมต้องเขียนแบบ OOP
Cat

Python OOP คืออะไร

Python OOP (Object Oriented Programming) คือการเขียนโปรแกรมเชิงวัตถุด้วยภาษา Python

การเขียนโปรแกรมแบบนี้จะมองทุกอย่างเป็นวัตถุ (Object) โดยการสร้าง Class ที่ประกอบด้วย Attribute และ Method เป็นส่วนประกอบหลัก

Class เปรียบเสมือนพิมพ์เขียน หรือ blueprint ที่จะนำไปสร้างเป็น Object กี่อันก็ได้ เพื่อนำไปใช้งาน

Devdit
Cat

สรุปการเขียน OOP คือ สร้าง Class ประกอบด้วย Attribute กับ Method

เวลาเรียกใช้ Class ก็จะสร้างวัตถุ หรือ Object ซึ่งเป็นตัวแทนของ Class ดังกล่าว เช่น Class A นำไปสร้างเป็น Object A, B, C ใช่ไหม

ใช่ถูกต้องแล้ว อันนี้คือหลักการพื้นฐานของ OOP

Devdit
ลิงก์ผู้สนับสนุน
Cat

แล้ว Attribute กับ Method ใน Class คืออะไร ทำหน้าที่อะไร

Attribute คือคุณสมบัติ หรือคุณลักษณะของ Class หรือก็คือตัวแปรภายใน Class

Method คือฟังก์ชันการทำงานภายใน Class

Devdit
Cat

ขอตัวอย่างการสร้าง Class ง่ายๆ ด้วย Python หน่อย

class Demo:
    name = ''
    def __init__(self, name):
        self.name = name
    def hello(self):
        print("Hello " + str(self.name))

จากโค้ดอธิบายได้ดังนี้

1. สร้าง Class ชื่อ Demo

2. ใน Class Demo มี Attribute 1 ตัวคือ name

3. ใน Class Demo มี Method 2 อันคือ __init__ และ hello

def __init__ คือ Constructor Method ทำให้สามารถกำหนดค่า Attribute ได้เลยตอนสร้าง Object

def hello คือ Method ทำหน้าที่พิมพ์ข้อความ Hello ตามด้วยค่า Attribute name

Devdit
ลิงก์ผู้สนับสนุน
Cat

แล้วจะเรียกใช้ Class ที่สร้างขึ้นมาได้ยังไง

อย่างที่บอกเวลาจะเรียกใช้ Class ใน OOP จะต้องสร้างวัตถุ หรือ Object

class Demo:
    name = ''
    def __init__(self, name):
        self.name = name
    def hello(self):
        print("Hello " + str(self.name))

demo_1 = Demo('Devdit')
demo_1.hello()

demo_2 = Demo('Computer')
demo_2.hello()
// ผลลัพธ์
Hello Devdit
Hello Computer

สร้าง Object ชื่อ demo_1 จาก Class Demo กำหนดค่า Attribute name เท่ากับ Devdit และเรียกใช้ Method hello

สร้าง Object ชื่อ demo_2 จาก Class Demo กำหนดค่า Attribute name เท่ากับ Computer และเรียกใช้ Method hello

Devdit
Cat

สำหรับ Python การเขียนแบบ OOP ต่างยังไงกับการเขียนแบบฟังก์ชันยังไง

การเขียนโปรแกรมแบบ OOP และฟังก์ชันใน Python มีความแตกต่างกัน

ถ้าสนใจแค่ input process output และแต่ละการทำงานไม่เกี่ยวข้องกัน ไม่ซับซ้อน อาจพิจารณาการเขียนโปรแกรมแบบฟังก์ชัน

แต่ถ้ามองข้อมูลเป็นวัตถุ มีคุณสมบัติ และหน้าที่การทำงานที่มีความเกี่ยวข้องกัน มีความซับซ้อน อาจพิจารณาการเขียนโปรแกรมแบบ OOP

ท้ายที่สุดในการพัฒนาโปรแกรมอาจจมีทั้งแบบ OOP และฟังก์ชันร่วมกันก็ได้

Devdit
ลิงก์ผู้สนับสนุน
Cat

ข้อดีของ OOP คืออะไร ทำไมต้องเขียนโปรแกรมแบบ OOP

1. ทำให้โค้ดมีระเบียบ มีความชัดเจน บำรุงรักษาได้ง่าย

2. ลดความซ้ำซ้อนของการเขียนโค้ดได้อย่างมีประสิทธิภาพ

3. รองรับการขยาย มีความยืดหยุ่นสูงเหมาะกับระบบงานที่มีความซับซ้อน

Devdit
Cat

แล้วข้อเสียของการเขียนโปรแกรมแบบ OOP ละ

1. มีความซับซ้อนเพิ่มมากขึ้น จากแนวความคิด และหลักการของ OOP

2. ต้องเขียนโค้ดเพิ่มมากขึ้น และไม่เหมาะกับงานขนาดเล็ก

3. ต้องใช้เวลาในการเรียนรู้ และเข้าใจหลักการ OOP ซึ่งอาจไม่ง่ายเมื่อเทียบกับแบบอื่น

Devdit
ลิงก์ผู้สนับสนุน
Cat

จะพยามศึกษา OOP เพื่อเขียนโปรแกรมที่มีความซับซ้อนได้อย่างมีประสิทธิภาพ

สู้ๆ ทำได้แน่นอน

Devdit