Рубрики
Без рубрики

Полиморфизм в Питоне

Полиморфизм в Python может быть достигнут с помощью классов, функций, операторов и метода, перекрывающихся с наследством. Python не поддерживает перегрузку метода.

Автор оригинала: Pankaj Kumar.

Полиморфизм в Питоне

Полиморфизм означает иметь яркие или разные формы. В мире программирования полиморфизм относится к способности функции с тем же именем, чтобы вообще нести разные функции. Это создает структуру, которая может использовать много форм объектов.

Это позволяет функциям/аргументам использовать сущности различных типов в разное время.

В объектно-ориентированном программировании полиморфизм позволяет конкретному объекту относится к определенному классу, который будет использоваться аналогичным образом, как если бы он был другим объектом, относящимся к совершенно другому классу.

Полиморфизм в Питоне

Реализация полиморфизма в Python с классом

Python может использовать различные типы классов, таким же образом, используя полиморфизм. Чтобы служить этой цели, можно создать цикл, которая итерации с помощью кортежа объектов. Почта которого можно назвать методами без взгляда на тип класса, к которому принадлежит объект.

Пример: полиморфизм с классами и объектами

class Rabbit(): 
    def age(self): 
        print("This function determines the age of Rabbit.") 
  
    def color(self): 
        print("This function determines the color of Rabbit.") 
  
class Horse(): 
    def age(self): 
        print("This function determines the age of Horse.") 
  
    def color(self): 
        print("This function determines the color of Horse.") 
  
obj1 = Rabbit() 
obj2 = Horse() 
for type in (obj1, obj2): # creating a loop to iterate through the obj1, obj2
    type.age() 
    type.color() 
    

Выход :

Эта функция определяет возраст кролика. Эта функция определяет цвет кролика. Эта функция определяет эпоху лошади. Эта функция определяет цвет лошади.

Реализация полиморфизма в Python с наследством

Мы будем определять функции в полученном классе, имеющем то же имя, что и функции в базовом классе. Здесь мы повторно реализуем функции в полученном классе. Феномен повторной реализации функции в полученном классе известен как Метод, переопределение Отказ

Пример: полиморфизм с наследством

class Animal: 
  def type(self): 
    print("Various types of animals") 
      
  def age(self): 
    print("Age of the animal.") 
    
class Rabbit(Animal): 
  def age(self): 
    print("Age of rabbit.") 
      
class Horse(Animal): 
  def age(self): 
    print("Age of horse.") 
      
obj_animal = Animal() 
obj_rabbit = Rabbit() 
obj_horse = Horse() 
  
obj_animal.type() 
obj_animal.age() 
  
obj_rabbit.type() 
obj_rabbit.age() 
  
obj_horse.type() 
obj_horse.age() 

Выход :

Различные типы животных Возраст животного. Различные типы животных Возраст кролика. Различные типы животных Возраст лошади.

Рекомендуемые показания:

  • Наследование в Питоне
  • Многократное наследование в Python

Полиморфизм с компиляцией или метод перегрузки?

В отличие от многих других популярных объектно-ориентированных языков программирования, таких как Java, Python не поддерживает полиморфизм времени компиляции или перегрузки метода. Если скрипт класса или Python имеет несколько методов с тем же именем, метод, определенный в последнем, будет переопределять более раннее.

Python не использует функциональные аргументы для метода подписи, поэтому перегрузка метода не поддерживается в Python.

Оператор перегрузки в Python

Python поддерживает перегрузку оператора. Это другой тип полиморфизма, в котором оператор ведет себя по-разному на основе типа операндов.

  • + оператор добавляет два числа и объединяет две строки
  • * Оператор умножает два числа и при использовании со строкой и int, повторяет строку, данные INT и объединяйте их.

Подробнее на перегрузке оператора в Python.

Преимущества полиморфизма

  • Коды и классы, написанные один раз, могут быть повторно использованы и реализованы несколько раз.
  • Это помогает уменьшить соединение между различными функциями и поведением объектов.

использованная литература

  • Python объектно-ориентированное программирование
  • Функции Python