สอบถามหลักสูตรเลือกช่องทางที่สะดวก ทีมงานตอบเองทุกช่อง
LINE @itgeniusตอบเร็วที่สุด · จ–ศ 9:00–17:00 น.
โทรศัพท์
02-570-8449สำนักงาน088-807-9770มือถือ
อีเมลและโซเชียล
contact@itgenius.co.thสำหรับใบเสนอราคาและเอกสารFacebookitgeniusonlineYouTubeitgeniusengขอคำปรึกษาจัดอบรมให้ทีม
พัฒนาเว็บไซต์ · WDC-88

Python OOP

หลักสูตร Python OOP เป็นการอบรมเขียน Python แบบเชิงวัตถุ ตั้งแต่การคิดและออกแบบ Class ใช้หลัก Encapsulation, Inheritance และ Polymorphism ใช้ dataclass และ Protocol จนถึงหลัก SOLID และ Design Pattern แบบ Pythonic เหมาะกับ Developer ที่เขียน Python มาสักระยะ และหัวหน้าทีมที่วางมาตรฐานโค้ด

อัปเดตล่าสุด
ราคาเริ่มต้น 8,550 บาท / ท่าน 9,500 −10% ยังไม่รวม VAT 7% · มีราคาหมู่คณะ
PDFดาวน์โหลด Course Outline
  • ระยะเวลา18 ชั่วโมง · 3 วัน
  • รูปแบบออนไซต์ / ออนไลน์สด
  • รอบถัดไปเปิดตามคำขอ
  • ใบรับรองมี Certificate

ภาพรวมหลักสูตร

การเขียนโปรแกรมเชิงวัตถุ (OOP) ช่วยให้โค้ด Python ที่โตขึ้นเรื่อย ๆ ยังอ่านง่าย แก้ไขง่าย และนำกลับมาใช้ซ้ำได้ เพราะแยกข้อมูลกับพฤติกรรมที่เกี่ยวข้องไว้ด้วยกันเป็น Object ที่มีหน้าที่ชัดเจน เฟรมเวิร์กที่ใช้กันมากอย่าง Django, FastAPI และ pytest ก็ออกแบบด้วยแนวคิดนี้ ผู้ที่เข้าใจ OOP จึงอ่านและต่อยอดโค้ดของเฟรมเวิร์กได้เร็วขึ้น

หลักสูตรนี้พาผู้ที่เขียน Python ได้แล้วมาฝึกคิดและออกแบบแบบ Object Oriented ตั้งแต่การแยก Object จากโจทย์ เขียน Class และ Object ใช้หลัก Abstraction, Encapsulation, Inheritance และ Polymorphism ใช้ dataclass, Abstract Class และ Protocol ตรวจชนิดข้อมูลด้วย Type Hint จนถึงหลัก SOLID และ Design Pattern ที่ใช้บ่อยในแบบที่เหมาะกับ Python แล้วปิดท้ายด้วยการปรับสคริปต์เดิมให้เป็นโค้ดแบบ OOP พร้อม Test (อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง ระดับ Intermediate)

สิ่งที่คุณจะได้รับ

  • เข้าใจเหตุผลและหลักการคิดแบบ Object Oriented เทียบกับการเขียนแบบ Procedural
  • ออกแบบ Class จากโจทย์ และเขียน Class กับ Object ใน Python ได้
  • ใช้หลัก Abstraction, Encapsulation, Inheritance และ Polymorphism ได้ถูกที่
  • ใช้ dataclass, Dunder Method, Abstract Class และ Protocol ได้
  • ตรวจชนิดข้อมูลของโค้ด OOP ด้วย Type Hint และ mypy ได้
  • นำหลัก SOLID และ Composition มาออกแบบโค้ดที่แก้ไขง่าย
  • เลือกและเขียน Design Pattern ที่ใช้บ่อยในแบบที่เหมาะกับ Python ได้
  • เขียน Test ด้วย pytest เพื่อปรับโครงสร้างโค้ดได้อย่างมั่นใจ

หลักสูตรนี้เหมาะสำหรับ

  • Developer ที่เขียน Python มาสักระยะและต้องการจัดโครงสร้างโค้ดให้ดีขึ้น
  • ผู้ที่ผ่านหลักสูตร Python เบื้องต้นและต้องการต่อยอดไปพัฒนาเว็บแอปพลิเคชัน
  • IT Manager และหัวหน้าทีมที่ต้องรีวิวและวางมาตรฐานโค้ด Python
  • นักศึกษาและผู้สอนที่ต้องการเข้าใจ OOP และ Design Pattern ด้วย Python

พื้นฐานของผู้เข้าอบรม

  • เขียนโปรแกรมภาษา Python ได้ เช่น ตัวแปร เงื่อนไข ลูป ฟังก์ชัน List และ Dictionary
  • เคยเขียน Python มาสักระยะ หรือผ่านหลักสูตร Python เบื้องต้นมาแล้ว
  • ใช้ Command Line และ VS Code เบื้องต้นได้
  • นำโน้ตบุ๊กที่ติดตั้งโปรแกรมได้มาด้วย

หัวข้อการฝึกอบรม

รายละเอียดหลักสูตร

หลักสูตรนี้เป็นฉบับปรับปรุงใหม่ปี 2026 ของหลักสูตร Python OOP อบรม 3 วัน วันละ 6 ชั่วโมง รวม 18 ชั่วโมง (09:00-16:00 น.) รูปแบบบรรยายพร้อม Lab ระดับ Intermediate ฉบับนี้ย้ายมาใช้ Python 3.14 จัดการโปรเจกต์ด้วย uv เพิ่ม dataclass, typing.Protocol, Generic แบบใหม่, Decorator @override และการตรวจชนิดข้อมูลด้วย mypy เพิ่มหลัก SOLID และ Composition และสอน Design Pattern ในแบบที่เหมาะกับ Python

แทนการแปลงโค้ดแบบภาษาอื่นมาตรงตัว โดยยังคงแกนเดิมคือหลักการคิดแบบ Object Oriented, Class และ Object, Abstraction, Encapsulation, Inheritance, Polymorphism, Abstract Class และ Design Pattern อย่าง Singleton, Composite, Factory Method, Observer และ Strategy ปิดท้ายด้วย Workshop ปรับสคริปต์เดิมเป็นโค้ดแบบ OOP พร้อม Test ด้วย pytest ทุก Lab ใช้เครื่องมือโอเพนซอร์สหรือใช้ฟรี ผู้เรียนได้ Lab Guide และซอร์สโค้ดกลับไปใช้งานต่อ

Day 1 คิดแบบ OOP และเขียน Class ให้ดี

Section 1: Lab: เตรียมเครื่องมือและทำไมต้อง OOP

  • ติดตั้ง uv และให้ uv ติดตั้ง Python 3.14 พร้อมสร้างโปรเจกต์
  • ตั้งค่า VS Code, Ruff และ pytest สำหรับงานทั้งหลักสูตร
  • เขียนแบบ Procedural เทียบกับ OOP ข้อดี ข้อเสีย และงานที่เหมาะ
  • ปัญหาของสคริปต์ที่โตขึ้นโดยไม่มีโครงสร้าง
  • Lab: อ่านสคริปต์ระบบร้านค้าแบบเดิมและหาจุดที่แก้ยาก

Section 2: คิดแบบ Object และออกแบบ Class

  • Object คืออะไร ข้อมูล (State) และพฤติกรรม (Behavior)
  • แยก Object และหน้าที่ของแต่ละตัวจากโจทย์
  • หลัก Abstraction เลือกเฉพาะสิ่งที่ระบบต้องรู้
  • อ่านและวาด Class Diagram แบบ UML เบื้องต้น
  • Workshop: ออกแบบ Class ของระบบร้านค้าบนกระดาษ

Section 3: Lab: Class และ Object ใน Python

  • ประกาศ Class, เมธอด __init__ และความหมายของ self
  • Instance Attribute เทียบกับ Class Attribute
  • เมธอดปกติ, @classmethod และ @staticmethod
  • ใส่ Type Hint ให้ Attribute และเมธอด
  • Lab: Class สินค้า ลูกค้า และตะกร้าสินค้า

Section 4: Lab: Encapsulation และ Property

  • หลักการห่อหุ้มข้อมูลและแนวทางตั้งชื่อ _ และ __ ของ Python
  • ควบคุมการอ่านและแก้ค่าด้วย @property และ Setter
  • ตรวจความถูกต้องของข้อมูลและแจ้ง Error ที่ชัดเจน
  • Object ที่แก้ค่าไม่ได้ (Immutable) และเมื่อไรควรใช้
  • Lab: ป้องกันราคาติดลบและสต็อกไม่พอในตะกร้าสินค้า

Section 5: Lab: Dunder Method และ dataclass

  • Python Data Model กับ __repr__, __str__ และ __eq__
  • เปรียบเทียบและเรียงลำดับ Object ด้วย __lt__ และ total_ordering
  • ทำ Object ให้วนลูปได้ด้วย __len__ และ __iter__ และใช้กับ with
  • @dataclass กับ field, frozen, slots และ kw_only
  • Lab: เขียน Class สินค้าใหม่ด้วย dataclass ให้สั้นลง
Day 2 Inheritance, Polymorphism และการออกแบบที่ยืดหยุ่น

Section 6: Lab: Inheritance และ MRO

  • สืบทอด Class และเรียก Class แม่ด้วย super()
  • Override เมธอดพร้อม Decorator @override จาก typing
  • Multiple Inheritance และลำดับการค้นหาเมธอด (MRO)
  • Mixin สำหรับเพิ่มความสามารถเล็ก ๆ ให้หลาย Class
  • Lab: ลูกค้าทั่วไปกับลูกค้าสมาชิกที่คิดส่วนลดต่างกัน

Section 7: Polymorphism และ Duck Typing

  • Polymorphism คืออะไร และการเรียกเมธอดเดียวกันกับต่าง Object
  • Duck Typing แนวคิดที่ Python ใช้แทนการบังคับชนิด
  • Operator Overloading ด้วย __add__ และเพื่อน
  • แยกการทำงานตามชนิดข้อมูลด้วย singledispatchmethod และ match
  • Lab: ช่องทางชำระเงินหลายแบบที่เรียกใช้ด้วยโค้ดชุดเดียว

Section 8: Lab: Abstract Class และ Protocol

  • Abstract Class ด้วยโมดูล abc, ABC และ @abstractmethod
  • ความต่างระหว่าง Class ทั่วไปกับ Abstract Class
  • Interface แบบ Python ด้วย typing.Protocol
  • ตรวจขณะรันด้วย @runtime_checkable และข้อจำกัด
  • Lab: กำหนดสัญญาของระบบจัดส่งสินค้าแล้วเขียนหลายแบบ

Section 9: Composition และหลัก SOLID

  • Composition over Inheritance และสัญญาณว่าสืบทอดมากเกินไป
  • Single Responsibility และ Open/Closed
  • Liskov Substitution, Interface Segregation และ Dependency Inversion
  • ส่ง Dependency เข้าทาง Constructor เพื่อให้ทดสอบง่าย
  • Workshop: ปรับระบบคิดค่าส่งให้เพิ่มเงื่อนไขใหม่โดยไม่แก้โค้ดเดิม

Section 10: Lab: Type Hint สำหรับโค้ด OOP

  • Generic Class แบบใหม่ เช่น class Repository[T] และคำสั่ง type
  • Self, ClassVar, Final และ Enum สำหรับค่าคงที่
  • การประเมิน Annotation แบบเลื่อนเวลาของ Python 3.14
  • ตรวจโค้ดทั้งโปรเจกต์ด้วย mypy และอ่านข้อความเตือน
  • Lab: Repository แบบ Generic สำหรับสินค้าและลูกค้า
Day 3 Design Pattern แบบ Pythonic และ Workshop

Section 11: Design Pattern และ Creational Pattern

  • Design Pattern คืออะไร ที่มาจาก Gang of Four และ 3 กลุ่มหลัก
  • เมื่อไรควรใช้ Pattern และเมื่อไรภาษา Python มีทางที่ง่ายกว่า
  • Singleton ด้วย __new__ เทียบกับ Object ระดับ Module และข้อควรระวัง
  • Factory Method และ Registry ด้วย Dictionary ของ Class
  • Lab: สร้างตัวเชื่อมต่อการชำระเงินจากค่าตั้งค่า

Section 12: Lab: Structural Pattern

  • Composite สำหรับข้อมูลแบบต้นไม้ เช่น หมวดหมู่สินค้า
  • Adapter เชื่อมไลบรารีภายนอกที่ Interface ไม่ตรงกัน
  • Decorator Pattern เทียบกับ Decorator ของ Python
  • Facade ซ่อนระบบย่อยที่ซับซ้อนไว้หลังเมธอดเดียว
  • Lab: หมวดหมู่สินค้าหลายชั้นและตัวแปลงข้อมูลขนส่ง

Section 13: Lab: Observer และ Strategy

  • Observer แจ้งเหตุการณ์ไปยังหลายส่วนโดยไม่ผูกกันแน่น
  • Strategy สลับวิธีคำนวณขณะรันโปรแกรม
  • ใช้ฟังก์ชันและ Callable แทน Class ในแบบ Python
  • เลือกระหว่าง Strategy กับการสืบทอด
  • Lab: แจ้งเตือนเมื่อสั่งซื้อ และส่วนลดหลายรูปแบบ

Section 14: Behavioral Pattern อื่นที่ใช้บ่อย

  • Command เก็บคำสั่งไว้ทำซ้ำหรือยกเลิก (Undo)
  • State เปลี่ยนพฤติกรรมตามสถานะของคำสั่งซื้อ
  • Template Method กำหนดขั้นตอนหลักให้ Class ลูกเติม
  • Iterator ด้วย Generator และ yield
  • Lab: สถานะคำสั่งซื้อตั้งแต่รอชำระเงินจนจัดส่งสำเร็จ

Section 15: Workshop: Refactor สู่ OOP พร้อม Test

  • เขียน Test ด้วย pytest และ Fixture ก่อนปรับโครงสร้าง
  • ใช้ Test Double แทน Dependency ภายนอก
  • ปรับสคริปต์ร้านค้าเดิมเป็น Class และ Pattern ทีละขั้น
  • ใช้ AI Assistant ช่วยอธิบายและเสนอการ Refactor โดยตรวจผลเองทุกครั้ง
  • Workshop: ระบบร้านค้าแบบ OOP ที่ผ่าน Test, Ruff และ mypy

รอบอบรมและรูปแบบการอบรม

สำหรับบุคคล — รอบอบรมทั่วไป

ขณะนี้ยังไม่มีรอบอบรมเปิดรับสมัคร ลงชื่อจองไว้ได้เลย ทีมงานจะติดต่อกลับเป็นกลุ่มแรกเมื่อเปิดรอบถัดไป หรือสอบถามทางไลน์ หรือโทร 02-570-8449 หรือ 088-807-9770

สำหรับองค์กร — In-house / Private Training

  • ปรับเนื้อหาให้ตรงกับเครื่องมือและงานจริงของทีม
  • เลือกวันเอง อบรมที่บริษัทหรือออนไลน์สด
  • ออกใบเสนอราคาในนามนิติบุคคลให้ฝ่ายจัดซื้อ
ขอใบเสนอราคาอบรมองค์กร

วิทยากรผู้สอน

คำถามที่พบบ่อย

สร้าง Class และ Object ใน Python ทำอย่างไร

ประกาศคลาสด้วยคำว่า class ตามด้วยชื่อคลาส แล้วเขียนเมธอด __init__ เพื่อกำหนดค่าเริ่มต้นของ Object โดยพารามิเตอร์แรกคือ self ซึ่งหมายถึง Object ตัวนั้นเอง เก็บข้อมูลเป็น self.ชื่อตัวแปร แล้วสร้าง Object ด้วยการเรียกชื่อคลาสเหมือนฟังก์ชัน ถ้าคลาสมีหน้าที่หลักคือเก็บข้อมูล ใช้ @dataclass ให้ Python สร้าง __init__, __repr__ และ __eq__ ให้อัตโนมัติจาก Type Hint ของแต่ละ Field ได้

Python ทำ Abstract Class และ Interface ได้อย่างไร

Python ไม่มีคำสั่ง interface หรือ abstract โดยตรง แต่ใช้โมดูล abc แทน คือให้คลาสสืบทอดจาก ABC แล้วใส่ @abstractmethod หน้าเมธอดที่คลาสลูกต้องเขียนเอง ถ้าคลาสลูกเขียนไม่ครบจะสร้าง Object ไม่ได้ ถ้าต้องการเพียงบอกว่า Object ต้องมีเมธอดอะไรโดยไม่บังคับให้สืบทอด ใช้ typing.Protocol ร่วมกับเครื่องมือตรวจชนิดข้อมูลอย่าง mypy ซึ่งสอดคล้องกับแนวคิด Duck Typing ของ Python

เขียน Singleton Pattern ใน Python ทำอย่างไร

Singleton คือการรับประกันว่าคลาสหนึ่งมี Object เพียงตัวเดียวทั้งโปรแกรม เช่น ค่าตั้งค่าระบบ วิธีที่พบบ่อยคือ override เมธอด __new__ ให้คืน Object ตัวเดิมถ้าเคยสร้างไว้แล้ว แต่วิธีที่เรียบง่ายแบบ Python กว่าคือสร้าง Object ไว้ในโมดูลแล้ว import ไปใช้ เพราะโมดูลถูกโหลดเพียงครั้งเดียว ควรใช้อย่างระวังเพราะทำให้ทดสอบยากขึ้น หลายกรณีส่ง Object เข้าทาง Constructor แทนจะยืดหยุ่นกว่า

หลักสูตร Python OOP เหมาะกับใคร ต้องมีพื้นฐานอะไรมาก่อน

เหมาะกับ Developer ที่เขียน Python มาสักระยะ ผู้ที่ผ่านหลักสูตร Python เบื้องต้นและต้องการต่อยอดไปพัฒนาเว็บแอปพลิเคชัน IT Manager และหัวหน้าทีมที่ต้องรีวิวโค้ด รวมถึงนักศึกษาและผู้สอน ควรเขียน Python ได้แล้ว เช่น ตัวแปร เงื่อนไข ลูป ฟังก์ชัน List และ Dictionary และใช้ Command Line กับ VS Code เบื้องต้นได้

เรียนจบหลักสูตร Python OOP แล้วทำอะไรได้บ้าง

คิดและออกแบบโปรแกรมแบบ Object Oriented ด้วย Python เขียน Class และ Object ใช้หลัก Abstraction, Encapsulation, Inheritance และ Polymorphism ใช้ dataclass, Abstract Class และ Protocol ตรวจชนิดข้อมูลด้วย mypy นำหลัก SOLID และ Design Pattern อย่าง Singleton, Factory Method, Composite, Observer และ Strategy มาจัดโครงสร้างโค้ด และ Refactor โค้ดเดิมโดยมี Test รองรับ ผู้ผ่านการอบรมได้รับใบประกาศนียบัตร (Certificate of Completion) ที่มีเลขที่ของตัวเองและตรวจสอบออนไลน์ได้

จัดอบรมหลักสูตร Python OOP ให้ทีมในองค์กรได้ไหม

ได้ หลักสูตรนี้จัดเป็นการอบรมแบบ In-house ให้ทีมในองค์กรได้ และปรับตัวอย่างให้ตรงกับงานของทีม เช่น ฝึกปรับโครงสร้างสคริปต์หรือระบบ Python ที่ทีมดูแลอยู่ให้เป็นแบบ OOP พร้อม Test ขอใบเสนอราคาได้จากหน้านี้ หรือติดต่อทาง LINE @itgenius โทร 02-570-8449

บทความที่เกี่ยวข้อง