คลาส Python และอ็อบเจ็กต์ Part 9 Python Course ตั้งแต่ Beginner ถึง Advanced ใน 11 บล็อกโพสต์

เผยแพร่แล้ว: 2022-01-25

บทความนี้จะช่วยให้ผู้อ่านเข้าใจคลาส Python พื้นฐานควบคู่ไปกับแอพพลิเคชั่นพื้นฐานในโลกแห่งความเป็นจริง เราจะใช้ Visual Studio Code เป็นตัวแก้ไขโค้ดของเรา หากคุณยังไม่ได้ติดตั้ง Visual Studio Code คำแนะนำจะมีให้ในบล็อกแรก

คลาส Python และอ็อบเจ็กต์ – สารบัญ:

  1. คลาส Python
  2. คลาส Python – คำจำกัดความ
  3. การเริ่มต้นคลาส Python
  4. มาเขียนคลาส Python แรกของเรากันเถอะ
  5. คุณลักษณะ
  6. พฤติกรรมของชั้นเรียน
  7. วัตถุใน Python
  8. มรดก

คลาส 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 ในบล็อกโพสต์ถัดไป เราจะกล่าวถึงหัวข้อการจัดการไฟล์

python_classes

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

Python classes and objects. Part 9 Python Course from Beginner to Advanced in 11 blog posts robert whitney avatar 1background

ผู้เขียน: โรเบิร์ต วิทนีย์

ผู้เชี่ยวชาญ JavaScript และผู้สอนที่โค้ชแผนกไอที เป้าหมายหลักของเขาคือการยกระดับประสิทธิภาพการทำงานของทีมโดยการสอนผู้อื่นถึงวิธีการร่วมมืออย่างมีประสิทธิภาพขณะเขียนโค้ด

Python Course จาก Beginner ถึง Advanced ใน 11 บล็อกโพสต์:

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