ยินดีด้วย

Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

George Boorman

Curriculum Manager, DataCamp

Class และออบเจกต์

คำศัพท์ ความหมาย
Class แบบพิมพ์เขียว/เทมเพลตสำหรับสร้างออบเจกต์
Object การรวมกันของ ข้อมูล และ ฟังก์ชันการทำงาน คือ instance ของ class
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

Attribute และ method

คำศัพท์ ความหมาย
Class แบบพิมพ์เขียว/เทมเพลตสำหรับสร้างออบเจกต์
Object การรวมกันของ ข้อมูล และ ฟังก์ชันการทำงาน คือ instance ของ class
State ข้อมูล ที่เชื่อมกับออบเจกต์ กำหนดผ่าน attribute
Behavior ฟังก์ชันการทำงาน ของออบเจกต์ นิยามผ่าน method
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

แนวคิดหลัก

Encapsulation:

  • การรวมข้อมูลและ method ไว้ด้วยกัน

Inheritance:

  • การขยายฟังก์ชันการทำงานจากโค้ดที่มีอยู่

Polymorphism:

  • การสร้าง interface แบบรวมศูนย์
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การเปรียบเทียบ

ตัวดำเนินการ Method
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การแสดงผลแบบ string

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • ไม่เป็นทางการ สำหรับผู้ใช้งาน
  • การแสดงผลแบบ string

__repr__()

  • repr(obj), การแสดงผลใน console
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • เป็นทางการ สำหรับนักพัฒนา
  • การแสดงผลแบบ reproducible
  • ใช้แทน print() เมื่อไม่มี __str__()
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

การจัดการข้อผิดพลาด

class BalanceError(Exception): 
    pass

class Customer: def __init__(self, name, balance): if balance < 0 : raise BalanceError("Balance has to be non-negative!") else: self.name, self.balance = name, balance
# Use try-except to catch errors try: cust = Customer("Larry Torres", -100) except BalanceError: cust = Customer("Larry Torres", 0)
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

ขั้นตอนถัดไป

  • Multiple inheritance
  • Descriptors
  • Custom attributes
  • Custom iterators
  • Type hints
  • Abstract base classes
Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

มาฝึกกันเถอะ!

Python เบื้องต้นสำหรับการเขียนโปรแกรมเชิงวัตถุ

Preparing Video For Download...