OOP ใน Python
OOPs ใน Pythonเป็นวิธีการเขียนโปรแกรมที่เน้นการใช้อ็อบเจกต์และคลาสเหมือนกับภาษาโปรแกรมทั่วไปอื่นๆ ออบเจ็กต์สามารถเป็นเอนทิตีในโลกแห่งความเป็นจริงได้ Python ช่วยให้นักพัฒนาสามารถพัฒนาแอปพลิเคชันโดยใช้แนวทาง OOPs โดยเน้นที่ความสามารถในการนำโค้ดกลับมาใช้ใหม่ได้ มันง่ายมากที่จะสร้างคลาสและวัตถุใน Python
คลาสคืออะไร?
คลาสใน Python คือการจัดกลุ่มข้อมูลและฟังก์ชันเชิงตรรกะ ให้อิสระในการสร้างโครงสร้างข้อมูลที่มีเนื้อหาตามอำเภอใจและเข้าถึงได้ง่าย
ตัวอย่างเช่น สำหรับพนักงานธนาคารที่ต้องการดึงรายละเอียดลูกค้าทางออนไลน์ ให้ไปที่กลุ่มลูกค้าซึ่งแอตทริบิวต์ทั้งหมด เช่น รายละเอียดธุรกรรม รายละเอียดการถอนและเงินฝาก หนี้คงค้าง ฯลฯ จะถูกระบุไว้
ในบทช่วยสอนนี้ เราจะเรียนรู้
วิธีกำหนดคลาส Python
ในการกำหนดคลาสคุณต้องพิจารณาประเด็นต่อไปนี้
ขั้นตอนที่ 1)ใน Python คลาสถูกกำหนดโดยคีย์เวิร์ด"Class"
คลาส myClass():
ขั้นตอนที่ 2)ภายในคลาส คุณสามารถกำหนดฟังก์ชันหรือเมธอดที่เป็นส่วนหนึ่งของคลาสนี้
def method1 (ตัวเอง): พิมพ์ "คุรุ99" def method2 (ตัวเอง, someString): พิมพ์ "การทดสอบซอฟต์แวร์:" + someString
- ที่นี่เราได้กำหนด method1 ที่พิมพ์ “Guru99”
- อีกวิธีหนึ่งที่เราได้กำหนดไว้คือวิธีที่ 2 ที่พิมพ์ "การทดสอบซอฟต์แวร์" + SomeString SomeString เป็นตัวแปรที่จัดเตรียมโดยวิธีการเรียก
ขั้นตอนที่ 3)ทุกอย่างในคลาสถูกเยื้อง เช่นเดียวกับโค้ดในฟังก์ชัน, ลูป, if statement เป็นต้น สิ่งใดที่ไม่ได้เยื้องไม่อยู่ในคลาส
หมายเหตุ : เกี่ยวกับการใช้ “ตนเอง” ใน Python
- การโต้แย้งในตัวเองหมายถึงตัววัตถุเอง จึงใช้คำว่าตนเอง ดังนั้นภายในวิธีนี้ self จะอ้างถึงอินสแตนซ์เฉพาะของวัตถุนี้ที่กำลังดำเนินการอยู่
- Self เป็นชื่อที่ Python นิยมใช้เพื่อระบุพารามิเตอร์ตัวแรกของวิธีการอินสแตนซ์ใน Python มันเป็นส่วนหนึ่งของไวยากรณ์ Python เพื่อเข้าถึงสมาชิกของอ็อบเจกต์
ขั้นตอนที่ 4)เพื่อสร้างวัตถุของชั้นเรียน
c = myClass()
ขั้นตอนที่ 5)การเรียกใช้เมธอดในคลาส
c.method1() c.method2(" การทดสอบคือความสนุก")
- สังเกตว่าเมื่อเราเรียก method1 หรือ method2 เราไม่ต้องใส่ self-keyword ที่จัดการโดยอัตโนมัติโดยรันไทม์ Python
- รันไทม์ของ Python จะส่งค่า "ตัวเอง" เมื่อคุณเรียกใช้เมธอดอินสแตนซ์ ไม่ว่าคุณจะระบุโดยเจตนาหรือไม่ก็ตาม
- คุณเพียงแค่ต้องใส่ใจกับการโต้แย้งที่ไม่ใช่ตนเอง
ขั้นตอนที่ 6)นี่คือรหัสที่สมบูรณ์
#ไฟล์ตัวอย่างการทำงานกับคลาส คลาส myClass(): def method1(ตัวเอง): พิมพ์("Guru99") def method2 (ตัวเอง, someString): print("การทดสอบซอฟต์แวร์:" + someString) def หลัก (): #ฝึกวิธีการเรียน c = myClass () c.method1() c.method2(" การทดสอบคือความสนุก") ถ้า __name__== "__main__": หลัก()
มรดกทำงานอย่างไร
การสืบทอดเป็นคุณลักษณะที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ มันหมายถึงการกำหนดคลาสใหม่ที่มีการปรับเปลี่ยนคลาสที่มีอยู่น้อยลงหรือไม่มีเลย คลาสใหม่เรียกว่าคลาสที่ได้รับและคลาส ที่สืบทอด มาเรียกว่าเบส Python รองรับการสืบทอด; นอกจากนี้ยังรองรับการสืบทอดหลายรายการ คลาสสามารถสืบทอดแอตทริบิวต์และวิธีการทำงานจากคลาสอื่นที่เรียกว่าคลาสย่อยหรือทายาท
Python Inheritance Syntax
คลาส DerivedClass (BaseClass): body_of_derived_class
ขั้นตอนที่ 1)เรียกใช้รหัสต่อไปนี้
#ไฟล์ตัวอย่างการทำงานกับคลาส คลาส myClass(): def method1(ตัวเอง): พิมพ์("Guru99") คลาส childClass (myClass): #def method1(ตัวเอง): #myClass.method1(ตัวเอง); #print ("childClass Method1") def method2(ตัวเอง): พิมพ์ ("childClass method2") def หลัก (): #ฝึกวิธีการเรียน c2 = เด็กคลาส () c2.method1() #c2.method2() ถ้า __name__== "__main__": หลัก()
โปรดสังเกตว่าใน childClass เมธอด 1 ไม่ได้ถูกกำหนด แต่มาจาก myClass พาเรนต์ ผลลัพธ์คือ “Guru99”
ขั้นตอนที่ 2) Uncomment Line # 8 & 10. เรียกใช้รหัส
ตอนนี้ วิธีที่ 1 ถูกกำหนดใน childClass และแสดงผลลัพธ์ “childClass Method1” อย่างถูกต้อง
ขั้นตอนที่ 3) Uncomment บรรทัด #9 เรียกใช้รหัส
คุณสามารถเรียกเมธอดของคลาสพาเรนต์โดยใช้ไวยากรณ์
ParentClassName.MethodName(ตัวเอง)
ในกรณีของเรา เราเรียก myClass.method1(self) และ Guru99 พิมพ์ตามที่คาดไว้
ขั้นตอนที่ 4 ) Uncomment บรรทัด #19 เรียกใช้รหัส
วิธีที่ 2 ของคลาสลูกถูกเรียก และ “childClass method2” ถูกพิมพ์ตามที่คาดไว้
Python Constructors
คอนสตรัคเตอร์เป็นฟังก์ชันคลาสที่สร้างอินสแตนซ์ของอ็อบเจ็กต์ให้เป็นค่าที่กำหนดไว้ล่วงหน้า
เริ่มต้นด้วยขีดล่างคู่ (_) มัน __init__() วิธีการ
ในตัวอย่างด้านล่าง เรากำลังตั้งชื่อผู้ใช้โดยใช้ตัวสร้าง
ผู้ใช้คลาส: ชื่อ = "" def __init__ (ตัวเอง, ชื่อ): self.name = ชื่อ def พูดว่าสวัสดี (ตัวเอง): พิมพ์ ("ยินดีต้อนรับสู่ Guru99, " + self.name) ผู้ใช้1 = ผู้ใช้("อเล็กซ์") ผู้ใช้1.sayHello()
ผลลัพธ์จะเป็น:
ยินดีต้อนรับสู่ Guru99, อเล็กซ์
ตัวอย่าง Python 2
โค้ดด้านบนเป็นตัวอย่าง Python 3 หากคุณต้องการเรียกใช้ใน Python 2 โปรดพิจารณาโค้ดต่อไปนี้
# วิธีกำหนดคลาส Python #ไฟล์ตัวอย่างการทำงานกับคลาส คลาส myClass(): def method1(ตัวเอง): พิมพ์ "คุรุ99" def method2 (ตัวเอง, someString): พิมพ์ "การทดสอบซอฟต์แวร์:" + someString def หลัก (): #ฝึกวิธีการเรียน c = myClass () c.method1() c.method2(" การทดสอบคือความสนุก") ถ้า __name__== "__main__": หลัก() #กรรมพันธุ์ทำงานอย่างไร #ไฟล์ตัวอย่างการทำงานกับคลาส คลาส myClass(): def method1(ตัวเอง): พิมพ์ "คุรุ99" คลาส childClass (myClass): #def method1(ตัวเอง): #myClass.method1(ตัวเอง); #print "childClass Method1" def method2(ตัวเอง): พิมพ์ "childClass method2" def หลัก (): #ฝึกวิธีการเรียน c2 = เด็กคลาส () c2.method1() #c2.method2() ถ้า __name__== "__main__": หลัก()
เรียนรู้บทช่วยสอนของเราเกี่ยวกับPolymorphism ใน Python
สรุป:
“คลาส” คือการจัดกลุ่มฟังก์ชันและข้อมูลเชิงตรรกะ คลาส Python มีคุณสมบัติมาตรฐานทั้งหมดของ Object Oriented Programming
- กลไกการสืบทอดคลาส
- คลาสที่ได้รับซึ่งแทนที่เมธอดใดๆ ของคลาสพื้นฐาน
- เมธอดสามารถเรียกเมธอดของคลาสฐานที่มีชื่อเดียวกันได้
- Python Classes ถูกกำหนดโดยคำหลัก"class"เอง
- ภายในคลาส คุณสามารถกำหนดฟังก์ชันหรือเมธอดที่เป็นส่วนหนึ่งของคลาส
- ทุกอย่างในคลาสมีการเยื้อง เช่นเดียวกับโค้ดในฟังก์ชัน ลูป if คำสั่ง ฯลฯ
- อาร์กิวเมนต์ตนเองใน Python หมายถึงวัตถุเอง Self เป็นชื่อที่ Pythons ต้องการโดยอนุสัญญาเพื่อระบุพารามิเตอร์แรกของวิธีการอินสแตนซ์ในPython
- รันไทม์ของ Python จะส่งค่า "ตัวเอง" โดยอัตโนมัติเมื่อคุณเรียกใช้เมธอดอินสแตนซ์ ไม่ว่าคุณจะระบุโดยเจตนาหรือไม่ก็ตาม
- ใน Python คลาสสามารถสืบทอดแอตทริบิวต์และวิธีการทำงานจากคลาสอื่นที่เรียกว่าคลาสย่อยหรือทายาท
0 ความคิดเห็น:
แสดงความคิดเห็น