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