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

วันศุกร์ที่ 31 มกราคม พ.ศ. 2568

Polymorphism ใน Python ด้วย EXAMPLES



Polymorphism คืออะไร?

ความหลากหลายสามารถกำหนดเป็นเงื่อนไขที่เกิดขึ้นในหลายรูปแบบ เป็นแนวคิดในการเขียนโปรแกรม Python ซึ่งวัตถุที่กำหนดใน Python สามารถนำมาใช้ในรูปแบบต่างๆ อนุญาตให้โปรแกรมเมอร์กำหนดวิธีการต่าง ๆ ในคลาสที่ได้รับ และมีชื่อเดียวกับที่มีอยู่ในคลาสพาเรนต์ สถานการณ์ดังกล่าวรองรับวิธีการโอเวอร์โหลดใน Python

ในบทช่วยสอน Python Polymorphism คุณจะได้เรียนรู้:

ความหลากหลายในตัวดำเนินการ

ตัวดำเนินการใน Python ช่วยดำเนินการทางคณิตศาสตร์และงานเขียนโปรแกรมอื่นๆ อีกหลายอย่าง ตัวอย่างเช่น ตัวดำเนินการ '+' ช่วยในการเพิ่มระหว่างประเภทจำนวนเต็มสองประเภทใน Python และในทำนองเดียวกัน โอเปอเรเตอร์เดียวกันจะช่วยในการเชื่อมสตริงในการเขียนโปรแกรม Python

ให้เรายกตัวอย่างของตัวดำเนินการ + (บวก) ใน Python เพื่อแสดงแอปพลิเคชันของ Polymorphism ใน Python ดังที่แสดงด้านล่าง:

รหัสหลาม:

p = 55
q = 77
r = 9.5
g1 = "ปราชญ์"
g2 = "99!"
พิมพ์ ("ผลรวมของตัวเลขสองตัว", p + q)
print("ชนิดข้อมูลของผลลัพธ์คือ",type(p + q))
print("ผลรวมของตัวเลขสองตัว",q + r)
พิมพ์ ("ประเภทข้อมูลของผลลัพธ์คือ" ประเภท (q + r))
พิมพ์ ("สตริงที่ต่อกันคือ", g1 + g2)
print("ประเภทข้อมูลของสองสตริง",type(g1 + g2))

เอาท์พุท:

ผลรวมของสองตัวเลข 132
ชนิดข้อมูลของผลลัพธ์คือ <class 'int'>

ผลรวมของทั้งสองตัวเลข 86.5
ชนิดข้อมูลของผลลัพธ์คือ <class 'float'>

สตริงที่ต่อกันคือ Guru99!
ชนิดข้อมูลของสองสตริง <class 'str'>

ตัวอย่างข้างต้นถือได้ว่าเป็นตัวอย่างของการโอเวอร์โหลดโอเปอเรเตอร์

ความหลากหลายในวิธีการที่ผู้ใช้กำหนด

วิธีการกำหนดโดยผู้ใช้ในภาษาการเขียนโปรแกรม Python เป็นวิธีที่ผู้ใช้สร้างขึ้นและประกาศโดยใช้คำหลัก def พร้อมชื่อฟังก์ชัน

ความแตกต่างในภาษาการเขียนโปรแกรม Python ทำได้โดยวิธีการโอเวอร์โหลดและการแทนที่ Python กำหนดวิธีการด้วยคำหลัก def และมีชื่อเดียวกันทั้งในคลาสลูกและพาเรนต์

ให้เรายกตัวอย่างดังต่อไปนี้ที่แสดงด้านล่าง: –

รหัสหลาม:

จากคณิตศาสตร์
นำเข้าpi
คลาสสแควร์:
    def __init__ (ตัวเอง, ความยาว):
    self.l = ความยาว
def ปริมณฑล (ตัวเอง):
    ส่งคืน 4 * (self.l)
พื้นที่ def (ตัวเอง):
    กลับ self.l * self.l
วงคลาส:
    def __init__ (ตัวเอง, รัศมี):
    self.r = รัศมี
def ปริมณฑล (ตัวเอง):
    ส่งคืน 2 * pi * self.r
พื้นที่ def (ตัวเอง):
    ส่งคืน pi * self.r * * 2
#เริ่มต้นคลาส
sqr = สี่เหลี่ยม (10)
c1 = วงกลม(4)
print("ปริมณฑลคำนวณสำหรับสี่เหลี่ยม: ", sqr.perimeter())
print("พื้นที่คำนวณสำหรับสี่เหลี่ยม: ", sqr.area())
print("ปริมณฑลคำนวณสำหรับ Circle: ", c1.perimeter())
print("พื้นที่คำนวณสำหรับ Circle: ", c1.area())

เอาท์พุท:

ปริมณฑลคำนวณสำหรับสี่เหลี่ยมจัตุรัส: 40
พื้นที่คำนวณสำหรับตาราง: 100
เส้นรอบวงคำนวณสำหรับวงกลม: 25.132741228718345
พื้นที่คำนวณสำหรับ Circle: 50.26548245743669

ในโค้ดด้านบนนี้ มีวิธีที่ผู้ใช้กำหนดสองวิธี คือ ปริมณฑลและพื้นที่ ซึ่งกำหนดไว้ในคลาสวงกลมและสี่เหลี่ยม

ดังที่แสดงไว้ข้างต้น ทั้งคลาสแบบวงกลมและคลาสสแควร์เรียกชื่อเมธอดเดียวกันเพื่อแสดงคุณสมบัติของโพลิมอร์ฟิซึมเพื่อส่งมอบเอาต์พุตที่ต้องการ

ความหลากหลายในฟังก์ชัน

ฟังก์ชันในตัวใน Python ได้รับการออกแบบและรองรับการรันข้อมูลหลายประเภท ใน Python Len()เป็นหนึ่งในฟังก์ชั่นที่สำคัญในตัว

ใช้งานได้กับข้อมูลหลายประเภท: รายการ ทูเพิล สตริง และพจนานุกรม ฟังก์ชัน Len () ส่งคืนข้อมูลที่แน่นอนซึ่งสอดคล้องกับข้อมูลหลายประเภทเหล่านี้

รูปต่อไปนี้แสดงวิธีการใช้ Polymorphism ใน Python ที่สัมพันธ์กับฟังก์ชันที่สร้างขึ้น: –

โปรแกรมต่อไปนี้ช่วยในการอธิบายการประยุกต์ใช้ Polymorphism ใน Python: –

รหัสหลาม:

พิมพ์ ("ความยาวของสตริง Guru99 คือ ",len("Guru99"))
print("ความยาวของรายการคือ ,len(["Guru99","Example","Reader"]))
print("ความยาวของพจนานุกรมคือ ",len({"ชื่อเว็บไซต์":"Guru99","Type":"Education"}))

เอาท์พุท:

ความยาวของสาย Guru99 คือ 6
ความยาวของรายการคือ3
ความยาวของพจนานุกรมคือ2

ในตัวอย่างข้างต้น ฟังก์ชัน Len () ของ Python ดำเนินการ Polymorphism สำหรับประเภทข้อมูลสตริง รายการ และพจนานุกรม ตามลำดับ

ความหลากหลายและการสืบทอด

การสืบทอดใน Python สามารถกำหนดเป็นแนวคิดการเขียนโปรแกรมที่คลาสย่อยกำหนดคุณสมบัติสืบทอดจากคลาสฐานอื่นที่มีอยู่ใน Python

มีสองแนวคิดหลักของ Python ที่เรียกว่า method overriding และ method overloading

  • ในการโอเวอร์โหลดเมธอด Python มีคุณสมบัติในการสร้างเมธอดที่มีชื่อเดียวกันเพื่อดำเนินการหรือรันฟังก์ชันต่างๆ ในส่วนโค้ดที่กำหนด อนุญาตให้ใช้วิธีการโอเวอร์โหลดและใช้เพื่อทำงานต่าง ๆ ในแง่ที่ง่ายกว่า
  • ในการแทนที่เมธอด Python จะแทนที่ค่าที่ใช้ชื่อที่คล้ายกันในคลาสพาเรนต์และคลาสย่อย

ให้เรายกตัวอย่างต่อไปนี้ของ Polymorphism and inheritance ดังที่แสดงด้านล่าง: –

รหัสหลาม:

คลาสเบสคลาส:
    def __init__ (ตัวเอง, ชื่อ):
    self.name = ชื่อ
def area1(ตัวเอง):
    ผ่าน
def __str__(ตัวเอง):
    กลับชื่อตัวเอง
คลาสสี่เหลี่ยมผืนผ้า (เบสคลาส):
    def __init__(ตัวเอง ความยาว ความกว้าง):
    super().__init__("สี่เหลี่ยมผืนผ้า")
self.length = ความยาว
self.breadth = ความกว้าง
def area1(ตัวเอง):
    กลับความยาวตัวเอง * self.breadth
คลาสสามเหลี่ยม(เบสคลาส):
    def __init__(ตัวเอง ความสูง ฐาน):
    super().__init__("สามเหลี่ยม")
self.height = ความสูง
self.base = ฐาน
def area1(ตัวเอง):
    ผลตอบแทน (self.base * self.height) / 2
a = สี่เหลี่ยมผืนผ้า (90, 80)
b = สามเหลี่ยม(77, 64)
print("รูปร่างคือ: ", b)
print("พื้นที่ของรูปทรงคือ", b.area1())
พิมพ์ ("รูปร่างคือ:", ก)
print("พื้นที่ของรูปทรงคือ", a.area1())

เอาท์พุท:

รูปร่างคือ: สามเหลี่ยม
พื้นที่ของรูปทรงคือ 2464.0

รูปร่างคือ: สี่เหลี่ยมผืนผ้า
พื้นที่ของรูปทรงคือ 7200

ในโค้ดข้างต้น เมธอดมีชื่อเดียวกับเมธอด init และเมธอด area1 วัตถุของคลาสสแควร์และสี่เหลี่ยมจะใช้เพื่อเรียกใช้ทั้งสองวิธีเพื่อทำงานที่แตกต่างกันและให้ผลลัพธ์ของพื้นที่ของสี่เหลี่ยมและสี่เหลี่ยม

ความแตกต่างกับวิธีการเรียน

การเขียนโปรแกรม Python ช่วยให้โปรแกรมเมอร์บรรลุ Polymorphism และการโอเวอร์โหลดเมธอดด้วยเมธอดของคลาส คลาสต่างๆ ใน ​​Python สามารถมีเมธอดที่ประกาศในชื่อเดียวกันในโค้ด Python

ใน Python สามารถกำหนดคลาสที่แตกต่างกันได้สองคลาส คลาสแรกจะเป็นคลาสลูก และมาจากแอททริบิวจากคลาสอื่นที่กำหนดไว้ซึ่งเรียกว่าคลาสพาเรนต์

ตัวอย่างต่อไปนี้แสดงให้เห็นถึงแนวคิดของ Polymorphism ด้วยวิธีการเรียน: –

รหัสหลาม:

คลาสอเมซอน:
    def __init__(ตัวเอง, ชื่อ, ราคา):
    self.name = ชื่อ
self.price = ราคา
ข้อมูล def (ตัวเอง):
    print("นี่คือผลิตภัณฑ์และคลาส am ถูกเรียกใช้ ชื่อคือ {self.name} ค่าใช้จ่ายนี้ {self.price} รูปี")
ฟลิปคาร์ทคลาส:
    def __init__(ตัวเอง, ชื่อ, ราคา):
    self.name = ชื่อ
self.price = ราคา
ข้อมูล def (ตัวเอง):
    พิมพ์ (f "นี่คือผลิตภัณฑ์และคลาส fli ถูกเรียกใช้ ชื่อคือ {self.name} ค่าใช้จ่ายนี้ {self.price} รูปี")
FLP = flipkart ("iPhone", 2.5)
AMZ = อเมซอน ("ไอโฟน", 4)
สำหรับ product1 ใน (FLP, AMZ):
    product1.info()

เอาท์พุท:

นี่คือผลิตภัณฑ์ และคลาส fli ถูกเรียกใช้ ชื่อคือ iPhone และมีราคา 2.5 รูปี
นี่คือผลิตภัณฑ์ และคลาส am ถูกเรียกใช้ ชื่อคือ iPhone และมีราคา 4 รูปี

ในโค้ดด้านบน คลาสที่แตกต่างกันสองคลาสที่ตั้งชื่อเป็น flipkart และ amazon ใช้ชื่อเมธอดเดียวกัน info และ init เพื่อเสนอราคาผลิตภัณฑ์ตามลำดับ และแสดงแนวคิดของ Polymorphism เพิ่มเติมใน Python

ความแตกต่างระหว่างวิธีการโอเวอร์โหลดและ Polymorphism เวลาคอมไพล์

ในเวลาคอมไพล์ Polymorphism คอมไพเลอร์ของโปรแกรม Python จะแก้ไขการโทร Compile-time Polymorphism ทำได้โดยใช้วิธีการโอเวอร์โหลด

คอมไพเลอร์ Python ไม่แก้ไขการโทรระหว่างรันไทม์สำหรับความหลากหลาย นอกจากนี้ยังจัดประเภทเป็นวิธีการแทนที่ซึ่งวิธีการเดียวกันมีลายเซ็นหรือคุณสมบัติที่คล้ายกัน แต่เป็นส่วนหนึ่งของคลาสที่แตกต่างกัน

สรุป:

  • ความหลากหลายสามารถกำหนดเป็นเงื่อนไขที่เกิดขึ้นในหลายรูปแบบ
  • ตัวดำเนินการใน Python ช่วยดำเนินการทางคณิตศาสตร์และงานเขียนโปรแกรมอื่นๆ อีกหลายอย่าง
  • วิธีการกำหนดโดยผู้ใช้ในภาษาการเขียนโปรแกรม Python เป็นวิธีที่ผู้ใช้สร้างขึ้นและประกาศโดยใช้คำหลัก def พร้อมชื่อฟังก์ชัน
  • Polymorphism ใน 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.