ความแตกต่างใน 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 ยังได้รับมาผ่านการโอเวอร์โหลดตัวดำเนินการและวิธีคลาสอีกด้วย

สรุปโพสต์นี้ด้วย: