คลาส Python และอ็อบเจ็กต์ Part 9 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
เผยแพร่แล้ว: 2022-01-25บทความนี้จะช่วยให้ผู้อ่านเข้าใจคลาส Python พื้นฐานควบคู่ไปกับแอพพลิเคชั่นพื้นฐานในโลกแห่งความเป็นจริง เราจะใช้ Visual Studio Code เป็นตัวแก้ไขโค้ดของเรา หากคุณยังไม่ได้ติดตั้ง Visual Studio Code คำแนะนำจะมีให้ในบล็อกแรก
คลาส Python และอ็อบเจ็กต์ – สารบัญ:
- คลาส Python
- คลาส Python – คำจำกัดความ
- การเริ่มต้นคลาส Python
- มาเขียนคลาส Python แรกของเรากันเถอะ
- คุณลักษณะ
- พฤติกรรมของชั้นเรียน
- วัตถุใน Python
- มรดก
คลาส Python
ตามที่เราได้พูดคุยกันในบล็อกแรก Python เป็นภาษาโปรแกรมเชิงวัตถุ มีสามวลีที่สำคัญมากในขณะที่พูดถึงการเขียนโปรแกรมเชิงวัตถุใน Python อันแรกเป็นคลาส อันที่สองเป็นวัตถุ อันที่สามจะเป็นมรดก มาเริ่มกันที่คลาสคืออะไร
คลาส Python – คำจำกัดความ
คลาสเป็นพิมพ์เขียวหรือโปรแกรมขยายที่ช่วยในการสร้างวัตถุ ชั้นเรียนประกอบด้วยพฤติกรรมและสถานะ พฤติกรรมของคลาสนั้นแสดงให้เห็นผ่านฟังก์ชันภายในคลาสที่เรียกว่าเมธอด สถานะของคลาสนั้นแสดงให้เห็นโดยใช้ตัวแปรภายในคลาสที่เรียกว่าแอททริบิวต์
การเริ่มต้นคลาส Python
คลาสสามารถเริ่มต้นได้โดยใช้ไวยากรณ์ต่อไปนี้
คลาสใน python ถูกกำหนดโดยใช้คีย์เวิร์ด "class" ตามหลังชื่อคลาส ไวยากรณ์พื้นฐานของฟังก์ชัน Python มีภาพประกอบด้านล่าง
ตัวอย่างเช่น:
<img src="https://firmbee.com/wp-content/uploads/Python_9-800x600.png" alt="Python_classes" width="800" height="600" class="alignnone size-medium wp-image-21409 img-fluid" /> # Create a function # class Monkey class classname:
หมายเหตุ: ชื่อคลาสยังมีบรรทัดฐานเดียวกันกับการประกาศตัวแปร
มาเขียนคลาส Python แรกของเรากันเถอะ
# first class class Animals: pass
ในบล็อคโค้ดด้านบน เราได้เขียนคลาสที่เราจะพัฒนาต่อไปในบล็อก อย่างที่คุณเห็น เราได้ใช้คีย์เวิร์ด "คลาส"
ตอนนี้เรามาดูวิธีการเพิ่มส่วนประกอบให้กับคลาสของสัตว์ แต่ก่อนหน้านั้น เรามาเรียนรู้เกี่ยวกับคอนสตรัคเตอร์ “__init__()” กันก่อน ตัวสร้างใช้สำหรับการสร้างอินสแตนซ์ของวัตถุ ที่นี่ __init__() ใช้สำหรับการสร้างอินสแตนซ์ของวัตถุ คอนสตรัคเตอร์สามารถตั้งค่าเริ่มต้นได้โดยมีเพียงตัวเองเท่านั้นที่เป็นอาร์กิวเมนต์ หรือกำหนดพารามิเตอร์ด้วยอาร์กิวเมนต์ที่จำเป็น
คุณลักษณะ
มีแอตทริบิวต์ที่แตกต่างกันสองประเภท ประเภทแรกคือตัวแปรระดับและประเภทที่สองคือตัวแปรอินสแตนซ์ ตัวแปรคลาสคือตัวแปรที่เป็นของคลาส นอกจากนี้ ตัวแปรเหล่านี้ยังใช้ได้กับทุกอินสแตนซ์ของคลาส ดังนั้น ค่าของพวกเขาจะไม่เปลี่ยนแปลงแม้ว่าอินสแตนซ์จะเปลี่ยนไป
# class variables class Animals: type=”mammals”
ตัวแปรอินสแตนซ์คือตัวแปรที่เป็นของอินสแตนซ์เอง ดังนั้นพวกเขาจะเปลี่ยนค่าเมื่ออินสแตนซ์เปลี่ยนไป
# class variables class Animals: def __init__(self,legs): self.legs=legs
หมายเหตุ: ตัวแปรอินสแตนซ์ไม่พร้อมใช้งานสำหรับการเข้าถึงโดยใช้ชื่อคลาส เนื่องจากจะเปลี่ยนแปลงตามวัตถุที่เข้าถึง
มาสร้างโปรแกรมที่มีการประกาศตัวแปรทั้งคลาสและอินสแตนซ์
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs
ในโปรแกรมข้างต้น เราได้ใช้ทั้งตัวแปรอินสแตนซ์และคลาส ดังนั้น ตัวแปรเหล่านี้จึงสร้างแอตทริบิวต์ของคลาส
พฤติกรรมของชั้นเรียน
ตามที่กล่าวไว้ พฤติกรรมของคลาสถูกกำหนดโดยเมธอดภายในคลาส แต่ก่อนจะพูดถึงพฤติกรรม เราต้องเริ่มพูดถึงพารามิเตอร์ "ตัวเอง" ซึ่งเราใช้อยู่ใน __init__()
ตัวเอง:
พูดง่ายๆ ว่า เมื่อใดก็ตามที่เราแนบอะไรกับตนเอง จะบอกว่าตัวแปรหรือฟังก์ชันเป็นของคลาสนั้น ด้วย "ตัวเอง" คุณลักษณะหรือวิธีการของคลาสสามารถเข้าถึงได้
วิธีการ:
เมธอดของคลาสเป็นฟังก์ชันภายในคลาสซึ่งจะมีอาร์กิวเมนต์แรกเป็น "ตัวเอง" เมธอดภายในคลาสถูกกำหนดโดยใช้คีย์เวิร์ด “def”
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”)
ในวิธี “เปลือกไม้” ข้างต้น เนื่องจากเราใช้ตัวแปรชื่อ ซึ่งเป็นตัวแปรอินสแตนซ์ เรากำลังเข้าถึงมันโดยใช้ “ตนเอง” และฟังก์ชันนี้จะพิมพ์ว่า “วูฟ วูฟ!!!” เฉพาะในกรณีที่ชื่อที่กำหนดให้ วัตถุคือสุนัข
เราได้พูดถึงองค์ประกอบส่วนใหญ่ของชั้นเรียนแล้ว แต่คุณอาจกำลังคิดว่าจะดูว่าชั้นเรียนนั้นใช้งานได้หรือไม่ คำตอบคือ เว้นแต่เราจะสร้างวัตถุของชั้นเรียน เราจะไม่สามารถเห็นได้ว่าชั้นเรียนกำลังทำอะไรอยู่ ตอนนี้ มากำหนดและสร้างวัตถุของชั้นเรียนกัน
วัตถุใน Python
วัตถุเป็นตัวอย่างของคลาส คลาสเป็นเพียงพิมพ์เขียว แต่วัตถุนั้นเป็นตัวอย่างของคลาสที่มีค่าจริง
รหัสสำหรับกำหนดหรือสร้างวัตถุแสดงอยู่ด้านล่าง
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4)
ในการสร้างวัตถุ ไวยากรณ์คือ objectname=classname(arguments) ดังนั้นในที่นี้เราจะตั้งชื่อสัตว์ให้เป็นสุนัขและจำนวนขาเป็น 4 ตอนนี้วัตถุของชั้นเรียนถูกสร้างขึ้นแล้วขั้นตอนต่อไปคือการใช้วัตถุเพื่อเข้าถึงคุณลักษณะของมัน ในการเข้าถึงแอตทริบิวต์ของคลาสโดยใช้อ็อบเจ็กต์ โปรดจำไว้ว่า เฉพาะตัวแปรอินสแตนซ์เท่านั้นที่สามารถเข้าถึงได้โดยใช้อ็อบเจ็กต์ ตัวแปรอินสแตนซ์ในคลาสของเราคือชื่อและขา
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs)
ดังที่เราเห็น เราสามารถเข้าถึงตัวแปรอินสแตนซ์โดยใช้เครื่องหมายจุด

มาสำรวจผลลัพธ์กัน
#Output dog 4
ในการเข้าถึงฟังก์ชันภายในคลาสหรือเมธอด เราจะใช้เครื่องหมายจุด ตัวอย่างมีภาพประกอบด้านล่าง
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) dog=Animals(“dog”,4) print(dog.name) print(dog.legs) print(dog.bark())
#Output dog 4 woof woof!!!
ในตัวอย่างข้างต้น เราจะเห็นได้ว่าเรากำลังเข้าถึง class method “bark” โดยใช้ dog object ที่เราสร้างขึ้น เราจะเห็นว่าเราไม่ได้ใช้พารามิเตอร์ "ตนเอง" ในอาร์กิวเมนต์ของฟังก์ชัน นี่เป็นเพราะว่าเราไม่ต้องการใช้ "ตัวเอง" นอกชั้นเรียนเนื่องจากวัตถุทำหน้าที่เป็นตัวตน
มรดก
การสืบทอดเป็นกระบวนการที่สามารถส่งผ่านแอตทริบิวต์และเมธอดของคลาสไปยังคลาสย่อยได้ คลาสที่คลาสลูกสืบทอดมาคือคลาสพาเรนต์ ไวยากรณ์สำหรับการสืบทอดแสดงไว้ด้านล่าง
#Inheritance class parent: class child(parent):
จากภาพประกอบด้านบน เราจะเห็นว่าสำหรับไวยากรณ์การสืบทอด เรากำลังวางชื่อคลาสพาเรนต์เป็นอาร์กิวเมนต์สำหรับคลาสย่อย ลองใช้คลาส Animal และสร้างคลาสเด็กที่เรียกว่า dog นี่คือภาพประกอบด้านล่าง
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed
ในโค้ดตัวอย่างข้างต้น เราได้สร้างคลาสสุนัขซึ่งขยายคลาสสัตว์ที่เราสร้างขึ้นก่อนหน้านี้ นอกจากนี้เรายังใช้พารามิเตอร์จากสัตว์โดยใช้ Animals.__init__(อาร์กิวเมนต์) ซึ่งมีชื่อและขาที่จะสืบทอดไปยังคลาสสุนัข จากนั้นเรากำลังสร้างแอตทริบิวต์อินสแตนซ์สำหรับคลาสสุนัขซึ่งเป็นสายพันธุ์
ตอนนี้ มาสร้างวัตถุสำหรับคลาส dog และเข้าถึงแอตทริบิวต์และวิธีการของคลาสสัตว์
class Animals: type=”mammals” def __init__(self,name,legs): self.name=name self.legs=legs def bark(self): if self.name==”dog”: print(“woof woof!!!”) else: print(“not a dog”) class Dog(Animals): def __init__(self,name,legs,breed): Animals.__init__(self,name,legs) self.breed=breed pug=Dog("dog",4,"pug") pug.breed pug.name pug.legs pug.bark()
#Output pug dog 4 woof woof!!!
ดังที่เราเห็นได้จากเอาต์พุต แอตทริบิวต์และเมธอดของคลาสพาเรนต์กำลังถูกเข้าถึงโดยอ็อบเจ็กต์คลาสย่อย
ในบล็อกนี้ เราได้กล่าวถึงพื้นฐานของคลาสใน Python ในบล็อกโพสต์ถัดไป เราจะกล่าวถึงหัวข้อการจัดการไฟล์

คุณอาจชอบหลักสูตร JavaScript ของเราตั้งแต่ระดับเริ่มต้นไปจนถึงระดับสูง

ผู้เขียน: โรเบิร์ต วิทนีย์
ผู้เชี่ยวชาญ JavaScript และผู้สอนที่โค้ชแผนกไอที เป้าหมายหลักของเขาคือการยกระดับประสิทธิภาพการทำงานของทีมโดยการสอนผู้อื่นถึงวิธีการร่วมมืออย่างมีประสิทธิภาพขณะเขียนโค้ด
Python Course จาก Beginner ถึง Advanced ใน 11 บล็อกโพสต์:
- บทนำสู่หลักสูตรไพทอน ส่วนที่ 1 Python Course จาก Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ตัวแปรและชนิดข้อมูลในภาษาไพทอน ส่วนที่ 2 Python Course จาก Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- Python tuples, รายการ, ชุดและพจนานุกรม ส่วนที่ 3 หลักสูตร Python ตั้งแต่ระดับ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ชุด Python และพจนานุกรม ส่วนที่ 4 หลักสูตร Python ตั้งแต่ระดับ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- คำสั่งเงื่อนไขใน Python ส่วนที่ 5 Python Course จาก Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ลูปใน Python Part 6 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ฟังก์ชันไพทอน Part 7 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ฟังก์ชันขั้นสูงใน Python Part 8 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- คลาส Python และอ็อบเจ็กต์ Part 9 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- ไฟล์ในไพทอน Part 10 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์
- การใช้งาน Python ในทางปฏิบัติ Part 11 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์