คลาสและอ็อบเจกต์ของ Python
Python คลาส/วัตถุ
Python เป็นภาษาโปรแกรมเชิงวัตถุ
เกือบทุกอย่างใน Python เป็นวัตถุที่มีคุณสมบัติและวิธีการ
คลาสเป็นเหมือนตัวสร้างวัตถุหรือ "พิมพ์เขียว" สำหรับการสร้างวัตถุ
สร้างชั้นเรียน
ในการสร้างคลาส ใช้คำสำคัญclass
:
ตัวอย่าง
สร้างคลาสชื่อ MyClass โดยมีคุณสมบัติชื่อ x:
class MyClass:
x = 5
สร้างวัตถุ
ตอนนี้เราสามารถใช้คลาสชื่อ MyClass เพื่อสร้างอ็อบเจกต์:
ตัวอย่าง
สร้างวัตถุชื่อ p1 และพิมพ์ค่าของ x:
p1 = MyClass()
print(p1.x)
ฟังก์ชัน __init__()
ตัวอย่างข้างต้นเป็นคลาสและอ็อบเจ็กต์ในรูปแบบที่ง่ายที่สุด และไม่มีประโยชน์จริง ๆ ในการใช้งานจริง
เพื่อให้เข้าใจความหมายของคลาส เราต้องเข้าใจฟังก์ชัน __init__() ในตัว
คลาสทั้งหมดมีฟังก์ชันที่เรียกว่า __init__() ซึ่งจะดำเนินการเสมอเมื่อมีการเริ่มต้นคลาส
ใช้ฟังก์ชัน __init__() เพื่อกำหนดค่าให้กับคุณสมบัติของอ็อบเจ็กต์ หรือการดำเนินการอื่นๆ ที่จำเป็นต้องทำเมื่อสร้างอ็อบเจ็กต์:
ตัวอย่าง
สร้างคลาสชื่อ Person ใช้ฟังก์ชัน __init__() เพื่อกำหนดค่าสำหรับชื่อและอายุ:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John",
36)
print(p1.name)
print(p1.age)
หมายเหตุ:ฟังก์ชัน__init__()
นี้จะถูกเรียกโดยอัตโนมัติทุกครั้งที่มีการใช้คลาสเพื่อสร้างอ็อบเจกต์ใหม่
วิธีการวัตถุ
ออบเจ็กต์ยังสามารถมีเมธอดได้ เมธอดในอ็อบเจกต์คือฟังก์ชันที่เป็นของอ็อบเจ็กต์
ให้เราสร้างวิธีการในคลาส Person:
ตัวอย่าง
แทรกฟังก์ชันที่พิมพ์คำทักทาย และดำเนินการบนวัตถุ p1:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John",
36)
p1.myfunc()
หมายเหตุ: พารามิเตอร์คือ การself
อ้างอิงถึงอินสแตนซ์ปัจจุบันของคลาส และใช้เพื่อเข้าถึงตัวแปรที่เป็นของคลาส
พารามิเตอร์ตนเอง
พารามิเตอร์คือ การself
อ้างอิงถึงอินสแตนซ์ปัจจุบันของคลาส และใช้เพื่อเข้าถึงตัวแปรที่เป็นของคลาส
ไม่จำเป็นต้องตั้งชื่อself
คุณสามารถเรียกมันว่าอะไรก็ได้ที่คุณต้องการ แต่จะต้องเป็นพารามิเตอร์แรกของฟังก์ชันใดๆ ในคลาส:
ตัวอย่าง
ใช้คำว่าmysilllyobjectและabcแทนself :
class Person:
def __init__(mysillyobject, name, age):
mysillyobject.name = name
mysillyobject.age = age
def myfunc(abc):
print("Hello my name is " + abc.name)
p1 = Person("John",
36)
p1.myfunc()
แก้ไขคุณสมบัติของวัตถุ
คุณสามารถแก้ไขคุณสมบัติบนวัตถุเช่นนี้:
ตัวอย่าง
ตั้งอายุของ p1 เป็น 40:
p1.age = 40
ลบคุณสมบัติของวัตถุ
คุณสามารถลบคุณสมบัติบนวัตถุโดยใช้
del
คำสำคัญ:
ตัวอย่าง
ลบคุณสมบัติอายุจากวัตถุ p1:
del p1.age
ลบวัตถุ
คุณสามารถลบวัตถุโดยใช้del
คำสำคัญ:
ตัวอย่าง
ลบวัตถุ p1:
del p1
คำสั่งผ่าน
class
คำจำกัดความต้องไม่ว่างเปล่า แต่ถ้าคุณมีเหตุผลบางอย่างที่มีclass
คำจำกัดความที่ไม่มีเนื้อหา ให้ใส่pass
คำชี้แจงเพื่อหลีกเลี่ยงข้อผิดพลาด
ตัวอย่าง
class Person:
pass