คลาสและออบเจ็ค (Class and Object) ในภาษา Python
คลาส (Class) ในภาษา Python คือ ต้นแบบ (Blueprint) ที่กำหนดโครงสร้างและพฤติกรรมของออบเจ็ค (Object) โดยใช้คำสำคัญ class
และชื่อคลาสตามด้วยส่วนประกอบที่อธิบายโครงสร้างของคลาส เช่น attribute (ตัวแปร), method (ฟังก์ชั่น), และ constructor (ฟังก์ชั่นสำหรับสร้างออบเจ็ค)
การสร้างออบเจ็คจากคลาส จะใช้ class name
และวิธีการเรียกใช้จะเหมือนการเรียกใช้ฟังก์ชั่น โดยใช้ชื่อออบเจ็คตามด้วยวิธีการเรียกใช้เมธอดของออบเจ็ค
ในการสร้างออบเจ็กต์ (object) จากคลาส (class) ในภาษา Python จะต้องทำตามขั้นตอนดังนี้
-
กำหนดคลาส (class) โดยใช้คีย์เวิร์ด class พร้อมกับชื่อคลาสและส่วนประกอบต่างๆ โดยส่วนประกอบหลักของคลาสจะประกอบไปด้วย method ต่างๆ ที่ใช้สำหรับการดำเนินการต่างๆ และ properties ซึ่งเป็นตัวแปรที่ใช้ในการเก็บค่าต่างๆ
-
สร้างออบเจ็กต์ (object) จากคลาสโดยการเรียกใช้ constructor ซึ่งจะสร้างออบเจ็กต์ที่มี properties ต่างๆ ตามที่กำหนดใน constructor
-
เรียกใช้ method ต่างๆ ของคลาสโดยใช้ออบเจ็กต์ที่สร้างขึ้น
คลาส (Class) ในภาษา Python เป็นโครงสร้างของ Object ซึ่งเป็นรูปแบบการนิยามของ Object ที่เราต้องการสร้าง โดย Class จะประกอบไปด้วย Attribute และ Method ต่างๆ ซึ่งใน Python เราสามารถสร้าง Instance หรือ Object จาก Class ได้ด้วยคำสั่งต่อไปนี้
object_name = Class_name(arguments)
โดย arguments คือพารามิเตอร์ที่ต้องการส่งเข้าไปใน Class สำหรับการกำหนดค่าของ Attribute และการทำงานของ Method
ตัวอย่างที่ 1 การสร้างคลาสและออบเจ็ค
class Dog:
def __init__(self, name, age):
self.name = name
self.age = age
def bark(self):
print(f"{self.name} barks!")
my_dog = Dog("Fido", 3)
print(my_dog.name) # Output: Fido
print(my_dog.age) # Output: 3
my_dog.bark() # Output: Fido barks!
จากตัวอย่าง ได้สร้างคลาส Dog
ที่มี attribute name
และ age
และ method bark
สำหรับพิมพ์ข้อความ “barks!” พร้อมกับชื่อของสุนัข จากนั้นเราสร้างออบเจ็ค my_dog
จากคลาส Dog
และเรียกใช้ attribute และ method ของออบเจ็ค my_dog
ด้วยวิธีการเรียกใช้แบบดอท .
ตัวอย่างที่ 2 การสร้างคลาสและออบเจ็ค
# กำหนดคลาส Person
class Person:
# constructor สำหรับกำหนด properties ของออบเจ็กต์
def __init__(self, name, age):
self.name = name
self.age = age
# method สำหรับแสดงข้อมูลของออบเจ็กต์
def show_info(self):
print("Name:", self.name)
print("Age:", self.age)
# สร้างออบเจ็กต์ person1 จากคลาส Person
person1 = Person("John", 30)
# เรียกใช้ method show_info ของออบเจ็กต์ person1
person1.show_info()
ผลลัพธ์ที่ได้ คือ
Name: John
Age: 30
จากตัวอย่าง กำหนดคลาส Person ซึ่งมี properties คือ name และ age โดยใช้ constructor เพื่อกำหนดค่าเริ่มต้นสำหรับ properties ดังกล่าว และมี method show_info สำหรับแสดงข้อมูลของออบเจ็กต์ Person
ตัวอย่างที่ 3 หากเรามีคลาสชื่อว่า Person
ซึ่งประกอบไปด้วย Attribute เช่น name
, age
, gender
และ Method เช่น introduce()
, say_hello()
เราสามารถสร้าง Object ของ Person
ดังนี้
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def introduce(self):
print("My name is " + self.name + ", I am " + str(self.age) + " years old.")
def say_hello(self, other_person):
print("Hello " + other_person.name + ", my name is " + self.name)
person1 = Person("John", 25, "male")
person2 = Person("Mary", 30, "female")
จากตัวอย่าง สร้างคลาส Person
โดยมี Attribute คือ name
, age
, gender
และ Method คือ introduce()
และ say_hello()
โดย Method __init__()
เป็น Method พิเศษใน Python ที่จะถูกเรียกใช้งานเมื่อมีการสร้าง Object ใหม่ โดย self
ใน Method __init__()
จะเป็นการอ้างถึง Object ตัวเอง ซึ่ง Attribute ที่กำหนดใน Method __init__()
จะถูกกำหนดค่าให้กับ Object ในขั้นตอนการสร้าง Object
สร้างคลาส Person และสร้างออบเจ็ค person1 และ person2 ของคลาส Person ด้วยการเรียกใช้เมท็อด init() ที่ถูกนิยามในคลาส Person ในการกำหนดค่าสำหรับแต่ละออบเจ็ค
เมื่อสร้างออบเจ็ค person1 และ person2 เรียบร้อยแล้ว สามารถเรียกใช้เมท็อดที่ถูกนิยามในคลาส Person ได้ ดังนี้
- เรียกใช้เมท็อด introduce() ของ person1 หรือ person2 เพื่อแนะนำตัวของเจ้าของออบเจ็ค
- เรียกใช้เมท็อด say_hello() ของ person1 หรือ person2 พร้อมกับการส่งออบเจ็คอื่นเข้าไปเพื่อให้เจ้าของออบเจ็คพูด “Hello” ต้อนรับอีกออบเจ็คนั้น