ซ่อมคอมพิวเตอร์นอกสถานที่ รามตำแหง บางกะปิ 083-792-5426

วันอังคารที่ 28 มกราคม พ.ศ. 2568

Python OOPs — Class, Object, Inheritance และ Constructor พร้อมตัวอย่าง



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 Class & Objects: Define Class, Inheritance - บทช่วยสอน OOP

หมายเหตุ : เกี่ยวกับการใช้ “ตนเอง” ใน 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 Class & Objects: Define Class, Inheritance - บทช่วยสอน OOP

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 ความคิดเห็น:

แสดงความคิดเห็น

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design Downloaded from Free Blogger Templates Download | free website templates downloads | Vector Graphics | Web Design Resources Download.