Python OOP: คลาส วัตถุ การสืบทอด และตัวสร้างพร้อมตัวอย่าง
OOP เข้าแล้ว Python
OOP เข้าแล้ว Python เป็นแนวทางการเขียนโปรแกรมที่เน้นการใช้วัตถุและคลาสเช่นเดียวกับภาษาการเขียนโปรแกรมทั่วไปอื่นๆ วัตถุอาจเป็นเอนทิตีในโลกแห่งความเป็นจริงก็ได้ Python ช่วยให้นักพัฒนาสามารถพัฒนาแอปพลิเคชันโดยใช้แนวทาง OOP โดยเน้นไปที่การนำโค้ดกลับมาใช้ใหม่ได้ มันง่ายมากที่จะสร้างคลาสและอ็อบเจ็กต์ Python.
คลาสคืออะไร?
ชั้นเรียนใน Python คือการจัดกลุ่มข้อมูลและฟังก์ชันทางตรรกะ ให้อิสระในการสร้างโครงสร้างข้อมูลที่มีเนื้อหาตามอำเภอใจและเข้าถึงได้ง่าย
ตัวอย่างเช่น สำหรับพนักงานธนาคารใดๆ ที่ต้องการดึงข้อมูลรายละเอียดลูกค้าทางออนไลน์ จะต้องไปที่ ระดับลูกค้าซึ่งจะมีการแสดงรายการคุณลักษณะทั้งหมด เช่น รายละเอียดธุรกรรม รายละเอียดการถอนและการฝาก หนี้ค้างชำระ ฯลฯ
วิธีการกำหนด 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 เป็นชื่อที่ต้องการตามแบบแผนของ 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()
โปรดสังเกตว่าใน childClass วิธีที่ 1 ไม่ได้ถูกกำหนดไว้ แต่ได้มาจากพาเรนต์ myClass ผลลัพธ์คือ “Guru99”
ขั้นตอน 2) Uncomment Line # 8 & 10 เรียกใช้โค้ด
ตอนนี้ วิธีที่ 1 ถูกกำหนดไว้ใน childClass และเอาต์พุต “childClass Method1” จะแสดงอย่างถูกต้อง
ขั้นตอน 3) ไม่แสดงความคิดเห็นบรรทัดที่ 9 เรียกใช้รหัส
คุณสามารถเรียกเมธอดของคลาสพาเรนต์ได้โดยใช้ไวยากรณ์
ParentClassName.MethodName(self)
ในกรณีของเรา เราเรียก myClass.method1(self) และ Guru99 ว่าพิมพ์ตามที่คาดไว้
ขั้นตอนที่ 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
สรุป
“คลาส” คือการจัดกลุ่มฟังก์ชันและข้อมูลแบบลอจิคัล Python class มีคุณสมบัติมาตรฐานทั้งหมดของการเขียนโปรแกรมเชิงวัตถุ
- กลไกการสืบทอดคลาส
- คลาสที่ได้รับมาซึ่งแทนที่วิธีการใดๆ ของคลาสพื้นฐาน
- เมธอดสามารถเรียกเมธอดของคลาสพื้นฐานที่มีชื่อเดียวกันได้
- Python คลาสถูกกำหนดโดยคำหลัก “class†ตัวเอง
- ภายในคลาส คุณสามารถกำหนดฟังก์ชันหรือเมธอดที่เป็นส่วนหนึ่งของคลาสได้
- ทุกอย่างในคลาสจะถูกเยื้อง เช่นเดียวกับโค้ดในฟังก์ชัน ลูป คำสั่ง if ฯลฯ
- การโต้แย้งตนเองใน Python หมายถึงวัตถุนั้นเอง Self เป็นชื่อที่ต้องการตามแบบแผนของ Pythons เพื่อระบุพารามิเตอร์แรกของวิธีการเช่นใน Python
-
Python รันไทม์จะส่งผ่านค่า “ตนเอง” โดยอัตโนมัติเมื่อคุณเรียกใช้เมธอดอินสแตนซ์ในอินสแตนซ์ ไม่ว่าคุณจะตั้งใจระบุหรือไม่ก็ตาม
- In Pythonคลาสสามารถสืบทอดคุณลักษณะและวิธีการพฤติกรรมจากคลาสอื่นที่เรียกว่าคลาสย่อยหรือคลาสทายาท


