Python ชั้นและอ็อบเจกต์
- หน้าก่อนหน้า Python นิ้ว
- หน้าต่อไป Python มีทางเข้าทางออก
Python ชั้น/อ็อบเจกต์
Python คือภาษาเขียนโปรแกรมที่มุ่งเน้นที่อ็อบเจกต์
เกือบทุกอย่างใน Python ต่างเป็นอ็อบเจกต์ ที่มีตัวแปรและวิธี
ชั้น (Class) คล้ายกับคอนสตรัคเตอร์ของอ็อบเจกต์ หรือแบบที่ใช้สร้างอ็อบเจกต์
สร้างชั้น
เพื่อสร้างชั้น ใช้ class
คำเปิดคลาส:
ตัวอย่าง
ใช้อาทิตย์ x ในการสร้างชั้นที่มีชื่อ MyClass:
class MyClass: x = 5
สร้างอ็อบเจกต์
ตอนนี้เราสามารถใช้ชั้นที่มีชื่อ myClass ในการสร้างอ็อบเจกต์ได้
ตัวอย่าง
สร้างอ็อบเจกต์ที่มีชื่อ p1 และพิมพ์ค่าของ x:
p1 = MyClass() print(p1.x)
__init__() ฟังก์ชัน
ตัวอย่างที่อยู่ด้านบนเป็นรูปแบบของชั้นและอ็อบเจกต์ที่เรียบง่ายที่สุด แต่ไม่ได้ใช้ในโปรแกรมที่มีประโยชน์ทางปฏิบัติในความเป็นจริง
เพื่อที่จะเข้าใจความหมายของชั้น เราต้องเข้าใจฟังก์ชันที่เป็นส่วนประกอบของภาษาเดี่ยว __init__()
ฟังก์ชัน
ทุกชั้นมีฟังก์ชัน __init__() ซึ่งมักจะทำงานเมื่อชั้นเริ่มทำงาน
ใช้ฟังก์ชัน __init__() ในการกำหนดค่าแก่ตัวแปรของอ็อบเจกต์ หรือปฏิบัติการอื่นที่ต้องทำขณะที่สร้างอ็อบเจกต์:
ตัวอย่าง
สร้างชั้น Person โดยใช้ฟังก์ชัน __init__() เพื่อกำหนดค่าแก่ name และ age:
class Person: def __init__(self, name, age): self.name = name self.age = age p1 = Person("Bill", 63) 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("Bill", 63) p1.myfunc()
คำเตือน:self พารามิเตอร์คืออ้างอิงที่อยู่ของตัวอินสตรังซ์ปัจจุบันของชั้น ใช้เพื่อเข้าถึงตัวแปรที่เป็นของชั้น
ตัวแปร self
self
ตัวแปรเป็นอ้างอิงที่มีอยู่ของตัวแปรในชั้น ใช้เพื่อเข้าถึงตัวแปรที่เป็นของชั้น
มันไม่จำเป็นต้องมีชื่อ self
คุณสามารถเรียกใช้มันได้ตามต้องการ แต่มันต้องเป็นฟังก์ชันใดๆ ของชั้นตัวแปรที่แรก:
ตัวอย่าง
ใช้คำว่า mysillyobject และ 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("Bill", 63) p1.myfunc()
การปรับปรุงคุณสมบัติเจตนา
คุณสามารถเปลี่ยนคุณสมบัติของเจตนาเช่นนี้
ตัวอย่าง
ตั้งค่าอายุของ p1 ให้เป็น 40
p1.age = 40
ลบคุณสมบัติเจตนา
คุณสามารถใช้ del
ใช้คำสั่งลบเจตนาของเจตนา
ตัวอย่าง
ลบออบเจตนาของ p1 ที่มีชื่อ age
del p1.age
คำสั่ง pass
การกำหนดคำแปลงเป็นชัดเจนตามรูปแบบ แต่ถ้าคุณเขียนคำแปลงชัดเจนที่ไม่มีเนื้อหาด้วยเหตุผลบางอย่าง ใช้คำสั่ง pass ที่จะป้องกันข้อผิดพลาด
ตัวอย่าง
class Person: pass
- หน้าก่อนหน้า Python นิ้ว
- หน้าต่อไป Python มีทางเข้าทางออก