ความแตกต่างใน Python พร้อมตัวอย่าง
Polymorphism คืออะไร?
Polymorphism สามารถกำหนดได้ว่าเป็นเงื่อนไขที่เกิดขึ้นในหลายรูปแบบ เป็นแนวคิดใน Python การเขียนโปรแกรมโดยที่วัตถุกำหนดไว้ Python สามารถใช้งานได้หลากหลาย ช่วยให้โปรแกรมเมอร์สามารถกำหนดวิธีการต่างๆ ในคลาสที่ได้รับและมีชื่อเดียวกับที่มีอยู่ในคลาสหลัก สถานการณ์ดังกล่าวสนับสนุนวิธีการโอเวอร์โหลดใน Python.
ความแตกต่างใน Operaโปร
ผู้ดำเนินการใน Python ช่วยดำเนินการทางคณิตศาสตร์และงานการเขียนโปรแกรมอื่นๆ อีกหลายงาน ตัวอย่างเช่น ตัวดำเนินการ "+" ช่วยในการบวกระหว่างประเภทจำนวนเต็มสองประเภทใน Pythonและในลักษณะเดียวกัน ตัวดำเนินการเดียวกันจะช่วยในการต่อสตริงใน Python การเขียนโปรแกรม
ให้เรายกตัวอย่าง + (บวก) โอเปอเรเตอร์ Python เพื่อแสดงการประยุกต์ใช้ Polymorphism ใน Python ดังต่อไปนี้:
Python รหัส:
p = 55
q = 77
r = 9.5
g1 = "Guru"
g2 = "99!"
print("the sum of two numbers",p + q)
print("the data type of result is",type(p + q))
print("The sum of two numbers",q + r)
print("the data type of result is", type (q + r))
print("The concatenated string is", g1 + g2)
print("The data type of two strings",type(g1 + g2))
Output:
the sum of two numbers 132 the data type of result is <class 'int'> The sum of the two numbers 86.5 the data type of result is <class 'float'> The concatenated string is Guru99! The data type of two strings <class 'str'>
ตัวอย่างข้างต้นสามารถถือได้ว่าเป็นตัวอย่างของการโอเวอร์โหลดตัวดำเนินการอีกด้วย
ความหลากหลายในวิธีการที่ผู้ใช้กำหนด
วิธีการที่ผู้ใช้กำหนดใน Python ภาษาการเขียนโปรแกรมเป็นวิธีการที่ผู้ใช้สร้างขึ้น และประกาศโดยใช้คีย์เวิร์ด def พร้อมชื่อฟังก์ชัน
ความแตกต่างใน Python ภาษาการเขียนโปรแกรมทำได้โดยการโอเวอร์โหลดและการแทนที่วิธีการ Python กำหนดวิธีการด้วยคีย์เวิร์ด def และมีชื่อเดียวกันทั้งในคลาสย่อยและคลาสพาเรนต์
ให้เราลองยกตัวอย่างดังที่แสดงด้านล่างนี้: –
Python รหัส:
from math
import pi
class square:
def __init__(self, length):
self.l = length
def perimeter(self):
return 4 * (self.l)
def area(self):
return self.l * self.l
class Circle:
def __init__(self, radius):
self.r = radius
def perimeter(self):
return 2 * pi * self.r
def area(self):
return pi * self.r * * 2
# Initialize the classes
sqr = square(10)
c1 = Circle(4)
print("Perimeter computed for square: ", sqr.perimeter())
print("Area computed for square: ", sqr.area())
print("Perimeter computed for Circle: ", c1.perimeter())
print("Area computed for Circle: ", c1.area())
Output:
Perimeter computed for square: 40 Area computed for square: 100 Perimeter computed for Circle: 25.132741228718345 Area computed for Circle: 50.26548245743669
ในโค้ดข้างต้น มีสองวิธีที่ผู้ใช้กำหนด ได้แก่ เส้นรอบวงและพื้นที่ ซึ่งกำหนดไว้ในคลาสวงกลมและสี่เหลี่ยม
ดังที่แสดงไว้ข้างต้น ทั้งคลาสวงกลมและคลาสสแควร์เรียกใช้ชื่อเมธอดเดียวกันซึ่งแสดงคุณลักษณะของ Polymorphism เพื่อส่งมอบเอาต์พุตที่ต้องการ
ความแตกต่างในฟังก์ชัน
ฟังก์ชั่นในตัวใน Python ได้รับการออกแบบและทำให้เข้ากันได้กับการประมวลผลข้อมูลหลายประเภท ใน Python, Len() เป็นหนึ่งในฟังก์ชันหลักในตัว
ใช้งานได้กับข้อมูลหลายประเภท: รายการ สิ่งทูเพิล สตริง และพจนานุกรม ฟังก์ชัน Len () จะส่งคืนข้อมูลที่ชัดเจนซึ่งสอดคล้องกับประเภทข้อมูลจำนวนมากเหล่านี้
รูปต่อไปนี้แสดงให้เห็นถึงการประยุกต์ใช้ Polymorphism ใน Python เกี่ยวข้องกับฟังก์ชันที่สร้างขึ้น: –
โปรแกรมต่อไปนี้ช่วยในการแสดงการประยุกต์ใช้ Polymorphism ใน Python: -
Python รหัส:
print ("The length of string Guru99 is ",len("Guru99"))
print("The length of list is ",len(["Guru99","Example","Reader"]))
print("The length of dictionary is ",len({"Website name":"Guru99","Type":"Education"}))
Output:
The length of string Guru99 is 6 The length of the list is 3 The length of the dictionary is 2
ในตัวอย่างข้างต้น Len () ฟังก์ชันของ Python ดำเนินการ Polymorphism สำหรับชนิดข้อมูลสตริง รายการ และพจนานุกรม ตามลำดับ
ความแตกต่างและการสืบทอด
การรับมรดกใน Python สามารถกำหนดเป็นแนวคิดการเขียนโปรแกรมโดยที่คลาสลูกกำหนดสืบทอดคุณสมบัติจากคลาสฐานอื่นที่มีอยู่ Python.
มีสองที่สำคัญ Python แนวคิดที่เรียกว่า การเขียนทับวิธีการ และการโอเวอร์โหลดวิธีการ
- ในวิธีการโอเวอร์โหลด Python จัดเตรียมคุณลักษณะของการสร้างวิธีการที่มีชื่อเดียวกันเพื่อดำเนินการหรือดำเนินการฟังก์ชันต่างๆ ในโค้ดที่กำหนด อนุญาตให้โอเวอร์โหลดวิธีการและใช้เพื่อทำงานต่าง ๆ ในแง่ที่ง่ายกว่า
- ในวิธีการเอาชนะ Python จะแทนที่ค่าที่มีชื่อคล้ายกันในคลาสหลักและคลาสย่อย
มาดูตัวอย่างของ Polymorphism และการสืบทอดดังต่อไปนี้:
Python รหัส:
class baseclass:
def __init__(self, name):
self.name = name
def area1(self):
pass
def __str__(self):
return self.name
class rectangle(baseclass):
def __init__(self, length, breadth):
super().__init__("rectangle")
self.length = length
self.breadth = breadth
def area1(self):
return self.length * self.breadth
class triangle(baseclass):
def __init__(self, height, base):
super().__init__("triangle")
self.height = height
self.base = base
def area1(self):
return (self.base * self.height) / 2
a = rectangle(90, 80)
b = triangle(77, 64)
print("The shape is: ", b)
print("The area of shape is", b.area1())
print("The shape is:", a)
print("The area of shape is", a.area1())
Output:
The shape is: a triangle The area of a shape is 2464.0 The shape is: a rectangle The area of a shape is 7200
ในโค้ดด้านบน วิธีการต่างๆ มีชื่อเดียวกันซึ่งกำหนดเป็นวิธีการ init และวิธี area1 จากนั้นวัตถุของคลาสสแควร์และสี่เหลี่ยมผืนผ้าจะถูกนำมาใช้เพื่อเรียกใช้ทั้งสองวิธีเพื่อทำงานที่แตกต่างกันและให้ผลลัพธ์ของพื้นที่สี่เหลี่ยมจัตุรัสและสี่เหลี่ยมผืนผ้า
ความหลากหลายด้วยวิธีการแบบคลาส
การขอ Python การเขียนโปรแกรมช่วยให้โปรแกรมเมอร์สามารถบรรลุความหลากหลายและวิธีการโอเวอร์โหลดด้วยวิธีคลาส ชั้นเรียนที่แตกต่างกันใน Python สามารถมีเมธอดที่ถูกประกาศด้วยชื่อเดียวกันข้ามได้ Python รหัส.
In Pythonสามารถกำหนดคลาสที่แตกต่างกันได้สองคลาส หนึ่งจะเป็นคลาสลูกและได้รับคุณลักษณะจากคลาสที่กำหนดอื่นที่เรียกว่าคลาสพาเรนต์
ตัวอย่างต่อไปนี้แสดงให้เห็นแนวคิดของ Polymorphism ด้วยวิธีการคลาส: –
Python รหัส:
class amazon:
def __init__(self, name, price):
self.name = name
self.price = price
def info(self):
print("This is product and am class is invoked. The name is {self.name}. This costs {self.price} rupees.")
class flipkart:
def __init__(self, name, price):
self.name = name
self.price = price
def info(self):
print(f "This is product and fli class is invoked. The name is {self.name}. This costs {self.price} rupees.")
FLP = flipkart("Iphone", 2.5)
AMZ = amazon("Iphone", 4)
for product1 in (FLP, AMZ):
product1.info()
Output:
This is a product, and fli class is invoked. The name is iPhone, and this costs 2.5 rupees. This is a product, and am class is invoked. The name is iPhone, and this costs 4 rupees.
ในโค้ดด้านบน มีคลาสที่แตกต่างกันสองคลาสที่มีชื่อว่า flipkart และ amazon ที่ใช้ชื่อเมธอด info และ init เดียวกันเพื่อให้ราคาผลิตภัณฑ์ที่เกี่ยวข้องและอธิบายแนวคิดของ Polymorphism เพิ่มเติม Python.
ความแตกต่างระหว่างเมธอดโอเวอร์โหลดและความหลากหลายเวลาคอมไพล์
ใน Polymorphism ของคอมไพล์ไทม์คอมไพเลอร์ของ Python โปรแกรมแก้ไขการโทร ความหลากหลายเวลาคอมไพล์ทำได้สำเร็จโดยวิธีการโอเวอร์โหลด
การขอ Python คอมไพเลอร์ไม่สามารถแก้ไขการเรียกระหว่างรันไทม์สำหรับความหลากหลาย นอกจากนี้ยังจัดเป็นวิธีการแทนที่โดยที่วิธีการเดียวกันมีลายเซ็นหรือคุณสมบัติที่คล้ายกัน แต่เป็นส่วนหนึ่งของคลาสที่แตกต่างกัน
สรุป
- Polymorphism สามารถกำหนดได้ว่าเป็นเงื่อนไขที่เกิดขึ้นในหลายรูปแบบ
- ผู้ดำเนินการใน Python ช่วยทำงานทางคณิตศาสตร์และงานการเขียนโปรแกรมอื่นๆ อีกหลายงาน
- วิธีการที่ผู้ใช้กำหนดใน Python ภาษาการเขียนโปรแกรมเป็นวิธีการที่ผู้ใช้สร้างขึ้น และประกาศโดยใช้คีย์เวิร์ด def พร้อมชื่อฟังก์ชัน
- ความแตกต่างใน Python มีคุณสมบัติที่พึงประสงค์หลายประการ เช่น ส่งเสริมการนำโค้ดที่เขียนสำหรับคลาสและวิธีการที่แตกต่างกันมาใช้ซ้ำได้
- คลาสลูกเป็นคลาสที่ได้รับและได้รับคุณลักษณะจากคลาสพาเรนต์
- ความหลากหลายยังเกิดขึ้นได้ด้วยการแทนที่วิธีรันไทม์และการโอเวอร์โหลดวิธีคอมไพล์ไทม์
- ความแตกต่างใน Python ยังได้รับมาผ่านการโอเวอร์โหลดตัวดำเนินการและวิธีคลาสอีกด้วย


