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 ชั้นเรียน

หมายเหตุ: เกี่ยวกับการใช้ “ตัวตน” เข้ามา 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 ชั้นเรียน

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คลาสสามารถสืบทอดคุณลักษณะและวิธีการพฤติกรรมจากคลาสอื่นที่เรียกว่าคลาสย่อยหรือคลาสทายาท