OOP คืออะไร?

การเขียนโปรแกรมเชิงวัตถุใน Python

Alex Yarosh

Content Quality Analyst @ DataCamp

 

การเขียนโปรแกรมแบบ Procedural

 

  • โค้ดเป็นลำดับขั้นตอน
  • เหมาะสำหรับการวิเคราะห์ข้อมูล
การเขียนโปรแกรมเชิงวัตถุใน Python

การคิดแบบลำดับขั้นตอน

 

ไอคอนคนนอนบนเตียง ตามด้วยไอคอนกาแฟ และไอคอนกระเป๋าเอกสาร

 

ไอคอนหลากหลายแทนกิจกรรมต่าง ๆ มากมาย

การเขียนโปรแกรมเชิงวัตถุใน Python

 

การเขียนโปรแกรมแบบ Procedural

 

  • โค้ดเป็นลำดับขั้นตอน
  • เหมาะสำหรับการวิเคราะห์ข้อมูลและสคริปต์

 

การเขียนโปรแกรมเชิงวัตถุ (OOP)

 

  • โค้ดในรูปแบบการโต้ตอบระหว่างออบเจ็กต์
  • เหมาะสำหรับการสร้าง framework และเครื่องมือ
  • โค้ดที่ดูแลและนำกลับมาใช้ได้ง่าย!
การเขียนโปรแกรมเชิงวัตถุใน Python

ออบเจ็กต์ในฐานะโครงสร้างข้อมูล

$$\Large{\text{Object = state + behavior}}$$

ภาพเงาของคนถือแล็ปท็อป แทนลูกค้า

 

$$\text{\textbf{Encapsulation} - bundling data with code operating on it}$$

การเขียนโปรแกรมเชิงวัตถุใน Python

Class ในฐานะพิมพ์เขียว

  • Class : พิมพ์เขียวของออบเจ็กต์ ที่กำหนด state และ behavior ที่เป็นไปได้

customer class

การเขียนโปรแกรมเชิงวัตถุใน Python

Class ในฐานะพิมพ์เขียว

  • Class : พิมพ์เขียวของออบเจ็กต์ ที่กำหนด state และ behavior ที่เป็นไปได้

customer class แตกแขนงออกเป็น customer objects

การเขียนโปรแกรมเชิงวัตถุใน Python

ออบเจ็กต์ใน Python

  • ทุกอย่างใน Python คือออบเจ็กต์
  • ออบเจ็กต์ทุกตัวมี class
  • ใช้ type() เพื่อตรวจสอบ class
import numpy as np
a = np.array([1,2,3,4])
print(type(a))
numpy.ndarray
Object Class
5 int
"Hello" str
pd.DataFrame() DataFrame
np.mean function
... ...
การเขียนโปรแกรมเชิงวัตถุใน Python

Attribute และ Method

State ↔ attributes
import numpy as np
a = np.array([1,2,3,4])

# shape attribute a.shape
(4,)

 

  • ใช้ obj. เพื่อเข้าถึง attribute และ method
Behavior ↔ methods
import numpy as np
a = np.array([1,2,3,4])

# reshape method a.reshape(2,2)
array([[1, 2],
       [3, 4]])
การเขียนโปรแกรมเชิงวัตถุใน Python

Object = attribute + method

  • attribute ↔ ตัวแปรobj.my_attribute,

  • method ↔ function()obj.my_method().

import numpy as np
a = np.array([1,2,3,4])
dir(a)                # <--- list all attributes and methods
['T',
 '__abs__',
 ...
 'trace',
 'transpose',
 'var',
 'view']

การเขียนโปรแกรมเชิงวัตถุใน Python

มาทบทวนกัน!

การเขียนโปรแกรมเชิงวัตถุใน Python

Preparing Video For Download...