Python OOPs: คลาส, อ็อบเจ็กต์, การสืบทอด และคอนสตรัคเตอร์
⚡ สรุปอย่างชาญฉลาด
การเขียนโปรแกรมเชิงวัตถุใน Python จัดระเบียบโค้ดโดยใช้คลาสและอ็อบเจ็กต์ โดยรวมข้อมูลและพฤติกรรมที่เกี่ยวข้องเข้าด้วยกัน แนวทางนี้แสดงให้เห็นถึงวิธีการกำหนดคลาส สร้างอ็อบเจ็กต์ ใช้การสืบทอด และกำหนดค่าเริ่มต้นให้กับแอตทริบิวต์ด้วยคอนสตรัคเตอร์

OOP เข้าแล้ว Python
OOP เข้าแล้ว Python เป็นแนวทางการเขียนโปรแกรมที่เน้นการใช้วัตถุและคลาสเช่นเดียวกับภาษาการเขียนโปรแกรมทั่วไปอื่นๆ วัตถุอาจเป็นเอนทิตีในโลกแห่งความเป็นจริงก็ได้ Python ช่วยให้นักพัฒนาสามารถพัฒนาแอปพลิเคชันโดยใช้แนวทาง OOP โดยเน้นไปที่การนำโค้ดกลับมาใช้ใหม่ได้ มันง่ายมากที่จะสร้างคลาสและอ็อบเจ็กต์ Python.
คลาสคืออะไร?
ชั้นเรียนใน Python เป็นกลุ่มตรรกะping ประกอบด้วยข้อมูลและฟังก์ชันต่างๆ ทำให้สามารถสร้างโครงสร้างข้อมูลที่มีเนื้อหาใดๆ ก็ได้ และเข้าถึงได้ง่าย
ตัวอย่างเช่น สำหรับพนักงานธนาคารใดๆ ที่ต้องการดึงข้อมูลรายละเอียดลูกค้าทางออนไลน์ จะต้องไปที่ ระดับลูกค้าโดยจะแสดงคุณสมบัติทั้งหมด เช่น รายละเอียดการทำธุรกรรม รายละเอียดการถอนและการฝากเงิน ยอดหนี้คงค้าง เป็นต้น
วิธีการกำหนด Python ชั้นเรียน
ในการกำหนดคลาส คุณต้องพิจารณาประเด็นต่อไปนี้
ขั้นตอน 1) In Python, คลาสถูกกำหนดโดย "ระดับ" คีย์เวิร์ด
class myClass():
ขั้นตอน 2) ภายในคลาส คุณสามารถกำหนดฟังก์ชันหรือเมธอดที่เป็นส่วนหนึ่งของคลาสนี้ได้
def method1 (self): print "Guru99" def method2 (self,someString): print "Software Testing:" + someString
- ในที่นี้เราได้กำหนดเมธอด 1 ที่พิมพ์ “Guru99.”
- อีกวิธีหนึ่งที่เรากำหนดไว้คือวิธีที่ 2 ที่พิมพ์ "การทดสอบซอฟต์แวร์" + SomeString SomeString เป็นตัวแปรที่จัดทำโดยวิธีการโทร
ขั้นตอน 3) ทุกอย่างในคลาสมีการเยื้อง เช่นเดียวกับโค้ดในฟังก์ชัน ลูป คำสั่ง if ฯลฯ อะไรก็ตามที่ไม่มีการเยื้องจะไม่อยู่ในคลาส
หมายเหตุ: เกี่ยวกับการใช้ “ตัวตน” เข้ามา Python
- อาร์กิวเมนต์ `self` หมายถึงตัววัตถุเอง ดังนั้นจึงใช้คำว่า `self` ภายในเมธอดนี้ `self` จะหมายถึงอินสแตนซ์เฉพาะของวัตถุนี้ที่กำลังถูกดำเนินการอยู่
- Self เป็นชื่อที่ต้องการตามแบบแผนของ Pythons เพื่อระบุพารามิเตอร์แรกของวิธีการเช่นใน Python. มันเป็นส่วนหนึ่งของไฟล์ Python ไวยากรณ์เพื่อเข้าถึงสมาชิกของออบเจ็กต์
ขั้นตอน 4) เพื่อสร้างวัตถุของชั้นเรียน
c = myClass()
ขั้นตอน 5) เพื่อเรียกเมธอดในคลาส
c.method1()
c.method2(" Testing is fun")
- โปรดสังเกตว่าเมื่อเราเรียกใช้เมธอด method1 หรือ method2 เราไม่จำเป็นต้องระบุคีย์เวิร์ดของตัวเอง ระบบจะจัดการให้โดยอัตโนมัติ Python รันไทม์
- Python รันไทม์จะส่งผ่านค่า “ตัวเอง” เมื่อคุณเรียกใช้เมธอดอินสแตนซ์ ไม่ว่าคุณจะตั้งใจระบุหรือไม่ก็ตาม
- คุณเพียงแค่ต้องใส่ใจกับการโต้แย้งที่ไม่ใช่ตัวเอง
ขั้นตอน 6) นี่คือรหัสที่สมบูรณ์
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
def method2(self,someString):
print("Software Testing:" + someString)
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
มรดกทำงานอย่างไร
การสืบทอดเป็นคุณลักษณะที่ใช้ในการเขียนโปรแกรมเชิงวัตถุ มันหมายถึงการกำหนดคลาสใหม่ที่มีการแก้ไขคลาสที่มีอยู่น้อยลงหรือไม่มีเลย คลาสใหม่นี้มีชื่อว่า คลาสที่ได้รับ และจากสิ่งที่สืบทอดมานั้นเรียกว่า ฐาน. Python รองรับการรับมรดก มันยังรองรับ มรดกหลายอย่าง- คลาสสามารถสืบทอดคุณลักษณะและวิธีการพฤติกรรมจากคลาสอื่นที่เรียกว่าคลาสย่อยหรือคลาสทายาท
Python ไวยากรณ์การสืบทอด
class DerivedClass(BaseClass):
body_of_derived_class
ขั้นตอน 1) รันโค้ดต่อไปนี้
# Example file for working with classes
class myClass():
def method1(self):
print("Guru99")
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print ("childClass Method1")
def method2(self):
print("childClass method2")
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
โปรดสังเกตว่าในคลาสลูก เมธอด 1 ไม่ได้ถูกนิยามไว้ แต่สืบทอดมาจากคลาสแม่ myClass ผลลัพธ์ที่ได้คือ “Guru99.”
ขั้นตอน 2) Uncomment Line # 8 & 10 เรียกใช้โค้ด
ตอนนี้ วิธีที่ 1 ถูกกำหนดไว้ใน childClass และเอาต์พุต “childClass Method1” จะแสดงอย่างถูกต้อง
ขั้นตอน 3) ไม่แสดงความคิดเห็นบรรทัดที่ 9 เรียกใช้รหัส
คุณสามารถเรียกเมธอดของคลาสพาเรนต์ได้โดยใช้ไวยากรณ์
ParentClassName.MethodName(self)
ในกรณีของเรา เราเรียก myClass.method1(self) และ Guruเลข 99 พิมพ์ออกมาได้ตามที่คาดไว้
ขั้นตอนที่ 4) ไม่มีข้อคิดเห็น บรรทัดที่ 19 เรียกใช้รหัส
วิธีที่ 2 ของคลาสลูกถูกเรียกและ "childClass method2" ถูกพิมพ์ตามที่คาดไว้
Python ตัวสร้าง
Constructor คือฟังก์ชันคลาสที่สร้างอินสแตนซ์ของวัตถุให้เป็นค่าที่กำหนดไว้ล่วงหน้า
เริ่มต้นด้วยเครื่องหมายขีดล่างสองตัว (_) และเมธอด __init__()
ในตัวอย่างด้านล่าง เรากำลังตั้งชื่อของผู้ใช้โดยใช้ตัวสร้าง
class User:
name = ""
def __init__(self, name):
self.name = name
def sayHello(self):
print("Welcome to Guru99, " + self.name)
User1 = User("Alex")
User1.sayHello()
ผลลัพธ์จะเป็น:
ยินดีต้อนรับเข้าสู่ Guru99, อเล็กซ์
Python 2 ตัวอย่าง
รหัสข้างต้นคือ Python 3 ตัวอย่าง หากคุณต้องการรันอิน Python 2 โปรดพิจารณาโค้ดต่อไปนี้
# How to define Python classes
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
def method2(self,someString):
print "Software Testing:" + someString
def main():
# exercise the class methods
c = myClass ()
c.method1()
c.method2(" Testing is fun")
if __name__== "__main__":
main()
#How Inheritance works
# Example file for working with classes
class myClass():
def method1(self):
print "Guru99"
class childClass(myClass):
#def method1(self):
#myClass.method1(self);
#print "childClass Method1"
def method2(self):
print "childClass method2"
def main():
# exercise the class methods
c2 = childClass()
c2.method1()
#c2.method2()
if __name__== "__main__":
main()
เรียนรู้บทช่วยสอนถัดไปของเราเกี่ยวกับ ความแตกต่างใน Python


