Автор оригинала: 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