Polimorfizm Python ÖRNEKLERLE

Polimorfizm nedir?

Polimorfizm, birçok farklı biçimde ortaya çıkan bir durum olarak tanımlanabilir. Bu bir kavramdır Python programlamada tanımlanan bir nesne Python farklı şekillerde kullanılabilir. Programcının türetilmiş bir sınıfta birden fazla yöntem tanımlamasına olanak tanır ve ana sınıfta mevcut olanla aynı ada sahiptir. Bu tür senaryolar, yöntemin aşırı yüklenmesini destekler Python.

Polimorfizm Operaları

Bir operatör Python matematiksel ve diğer birçok programlama görevini gerçekleştirmeye yardımcı olur. Örneğin, '+' operatörü iki tamsayı türü arasında toplama işlemi yapmaya yardımcı olur Pythonve aynı şekilde, aynı operatör dizeleri birleştirmeye yardımcı olur Python programlama.

+ (artı) örneğini ele alalım Içinde operatör Python Polimorfizmin bir uygulamasını görüntülemek için Python Aşağıda gösterildiği gibi:

Python Kod:

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))

Çıktı:

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'>

Yukarıdaki örnek aynı zamanda operatörün aşırı yüklenmesine örnek olarak da değerlendirilebilir.

Kullanıcı tanımlı yöntemlerde çok biçimlilik

Kullanıcı tanımlı bir yöntem Python programlama dili kullanıcının oluşturduğu yöntemlerdir ve işlev adıyla birlikte def anahtar sözcüğü kullanılarak bildirilir.

Polimorfizm Python programlama dili, yöntemin aşırı yüklenmesi ve geçersiz kılınması yoluyla elde edilir. Python def anahtar kelimesini içeren ve hem alt hem de üst sınıfta aynı adı taşıyan yöntemleri tanımlar.

Aşağıda gösterildiği gibi şu örneği ele alalım: –

Python Kod:

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())

Çıktı:

Perimeter computed for square:  40
Area computed for square:  100
Perimeter computed for Circle:  25.132741228718345
Area computed for Circle:  50.26548245743669

Yukarıdaki kodda daire ve kare sınıflarında tanımlanmış, çevre ve alan olmak üzere iki adet kullanıcı tanımlı yöntem bulunmaktadır.

Yukarıda gösterildiği gibi, hem daire sınıfı hem de kare sınıfı, gerekli çıktıyı sağlamak için Polimorfizm karakteristiğini gösteren aynı yöntem adını çağırır.

Fonksiyonlarda Polimorfizm

Yerleşik işlevler Python çeşitli veri türlerini yürütmek için tasarlanmış ve uyumlu hale getirilmiştir. İçinde Python, Len() temel yerleşik işlevlerden biridir.

Çeşitli veri türlerinde çalışır: liste, tuple, dize ve sözlük. Len () işlevi, bu birçok veri türüyle uyumlu kesin bilgileri döndürür.

Aşağıdaki şekil Polimorfizmin nasıl uygulanabileceğini göstermektedir Python yerleşik işlevlerle ilgili olarak: –

Fonksiyonlarda Polimorfizm

Aşağıdaki program Polimorfizmin uygulamasını göstermeye yardımcı olur Python: -

Python Kod:

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"}))

Çıktı:

The length of string Guru99 is 6
The length of the list is 3
The length of the dictionary is 2

Fonksiyonlarda Polimorfizm

Yukarıdaki örnekte Len() fonksiyonu Python sırasıyla dize, liste ve sözlük veri türleri için Polimorfizm gerçekleştirir.

Polimorfizm ve Kalıtım

Miras Python tanımlanan bir alt sınıfın, içinde mevcut olan başka bir temel sınıftan özellikleri devraldığı programlama konsepti olarak tanımlanabilir. Python.

İki anahtar var Python yöntem geçersiz kılma ve yöntem aşırı yükleme olarak adlandırılan kavramlar.

  • Yöntem aşırı yüklemesinde, Python Belirli bir kod parçasında farklı işlevleri gerçekleştirmek veya yürütmek için aynı ada sahip yöntemler oluşturma özelliğini sağlar. Yöntemlerin aşırı yüklenmesine izin verir ve bunları daha basit terimlerle farklı görevleri gerçekleştirmek için kullanır.
  • Yöntem geçersiz kılma'da, Python ebeveyn ve çocuk sınıflarında benzer adı paylaşan değeri geçersiz kılar.

Aşağıda gösterildiği gibi Polimorfizm ve kalıtımın aşağıdaki örneğini ele alalım: –

Python Kod:

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())

Çıktı:

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

Yukarıdaki kodda yöntemler, init yöntemi ve alan1 yöntemiyle tanımlanan aynı ada sahiptir. Kare ve dikdörtgen sınıfının nesnesi daha sonra farklı görevleri gerçekleştirmek ve kare ve dikdörtgen alanının çıktısını sağlamak için iki yöntemi çağırmak için kullanılır.

Sınıf Yöntemleriyle Polimorfizm

The Python programlama, programcıların sınıf yöntemleriyle Polimorfizm ve yöntem aşırı yüklemesine ulaşmasını sağlar. İçindeki farklı sınıflar Python genelinde aynı adla bildirilen yöntemlere sahip olabilir. Python kodu.

In Pythoniki farklı sınıf tanımlanabilir. Bunlardan biri alt sınıf olabilir ve nitelikleri ana sınıf olarak adlandırılan başka bir tanımlanmış sınıftan türetir.

Aşağıdaki örnek, sınıf yöntemleriyle Polimorfizm kavramını göstermektedir: –

Python Kod:

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()

Çıktı:

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.

Yukarıdaki kodda, flipkart ve amazon adlı iki farklı sınıf, ürünün ilgili fiyat tekliflerini sağlamak ve Polimorfizm kavramını daha da açıklamak için aynı yöntem adları olan info ve init'i kullanır. Python.

Yöntemin aşırı yüklenmesi ile derleme zamanı Polimorfizmi arasındaki fark

Derleme zamanı Polimorfizminde, derleyici Python program çağrıyı çözer. Derleme zamanı Polimorfizmi, yöntemin aşırı yüklenmesi yoluyla gerçekleştirilir.

The Python derleyici çalışma süresi sırasında polimorfizm nedeniyle çağrıları çözümlemez. Aynı yöntemlerin benzer imzalar veya özellikler taşıdığı ancak farklı sınıfların bir parçasını oluşturduğu yöntem geçersiz kılma olarak da sınıflandırılır.

ÖZET

  • Polimorfizm, birçok farklı biçimde ortaya çıkan bir durum olarak tanımlanabilir.
  • Bir operatör Python matematiksel ve diğer bazı programlama görevlerinin gerçekleştirilmesine yardımcı olur.
  • Kullanıcı tanımlı bir yöntem Python programlama dili kullanıcının oluşturduğu yöntemlerdir ve işlev adıyla birlikte def anahtar sözcüğü kullanılarak bildirilir.
  • Polimorfizm Python farklı sınıflar ve yöntemler için yazılmış kodların yeniden kullanılabilirliğini artırması gibi çeşitli arzu edilen nitelikler sunar.
  • Alt sınıf türetilmiş bir sınıftır ve niteliklerini üst sınıftan alır.
  • Polimorfizm ayrıca çalışma zamanı yönteminin geçersiz kılınması ve derleme zamanı yönteminin aşırı yüklenmesi yoluyla da elde edilir.
  • Polimorfizm Python Ayrıca operatör aşırı yüklemesi ve sınıf metotları ile de elde edilir.

Bu yazıyı şu şekilde özetleyin: