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

Обучение Python- промежуточный курс: день 42, полиморфизм.

Сегодня мы узнаем о полиморфизме в Python Что именно … Помечено с учебным током, Python, учебником, Оопом.

Обучение Python (72 частью серии)

Сегодня мы узнаем о полиморфизме в Python

Что именно является полиморфизм

Полиморфизм – это функция OOP, которая обеспечивает расширяемость и гибкость к вашему коду. Основным преимуществом полиморфизма является гибкостью. Полиморфизм дает вам гибкость, потерянную в наследстве.

Поли – Многие морфизм -Мелые формы Полиморфизм это условие возникновения в разных формах.

Полиморфизм в операторах

Мы используем полиморфизм при работе с операторами. Например, + Оператор используется для добавления двух чисел, а также к кокосоту две строки. Точно так же, оператор продукта * Используется для умножения двух целых чисел, плавающих номеров, а также два комплексных числа в Python. Это пример полиморфизма, который мы неосознанно используются до сих пор.

Полиморфизм в функциях

До сих пор мы столкнулись со многими функциями, которые принимают аргументы различных множественных типов. Например, функция печати принимает списки, кортежи, цифры, комплексные номера, а также строки. Другим примером является Лен () Функция, которая принимает в любом Iterable Type. Когда строка пройдена, она возвращает количество символов, когда список передается, он возвращает количество элементов, и когда пропускается словарь, он возвращает количество ключевых значений.

Полиморфизм в ООП

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

class ape():
    food=""
    def __init__(self,weight):
        self.weight=weight
    def cry(self):
        pass # Do nothing
    def eat(self):
        print(self.food)

class chimpanzee(ape):
    def __init__(self,weight):
        super().__init__(weight)
        self.food="bananas"
    def cry(self):
        print("I am a chimp")

class gorrilla(ape):
    def __init__(self,weight):
        super().__init__(weight)
        self.food="fruits"
    def cry(self):
        print("I am a gorrilla")

a=chimpanzee(20)
b=chimpanzee(25)
c=gorrilla(50)

a.cry()
b.cry()
c.cry()

print(a.weight)
print(b.weight)
print(c.weight)

a.eat()
b.eat()
c.eat()
I am a chimp
I am a chimp
I am a gorrilla
20
25
50
bananas
bananas
fruits

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

Теперь шимпанзе и горилла получают из того же класса. У них такие же атрибуты – вес и еда. Но у них есть разные ценности для них. Мы даже можем добавить дополнительные методы для каждого из этих классов. Но атрибуты веса, еда и метод едят из самого класса APE. Так есть ли способ использовать их, не зная погода, обезьяна – шимпанзе или горилла? Это возможно, если все они имеют такие же методы (это перегруженные методы.) Другими словами, мы можем просто использовать свои характеристики «Apish» как один, используя методы. Это центральная идея полиморфизма. В Python полиморфизм достигается благодаря перегрузке метода.

А как обезьяна, а также шимпанзе. Так мы можем рассматривать как и обезьян? Так мы можем лечить А , b , C как равные обезьяны? Мы можем использовать полиморфизм. Время от времени нам придется рассмотреть это A, B, C просто обезьяны, а не гориллы или шимпанзе и относятся к ним все одинаково. Это уменьшает накладные расходы обрабатывающих объектов различных видов подклассов как разных объектов. Например, завтра, если я хочу добавить подкласс орангутана, мне не потребуется вернуться и изменить все, что я написал ранее. Использование полиморфизма, я могу просто относиться к ним как равным. Мы перегружаем функции.

Теперь мы можем сделать полиморфизм лучше, используя

class ape():
    food=""
    def __init__(self,weight):
        self.weight=weight
    def cry(self):
        pass # Do nothing
    def eat(self):
        print(self.food)

class chimpanzee(ape):
    def __init__(self,weight):
        super().__init__(weight)
        self.food="bananas"
    def cry(self):
        print("I am a chimp")

class gorrilla(ape):
    def __init__(self,weight):
        super().__init__(weight)
        self.food="fruits"
    def cry(self):
        print("I am a gorrilla")


a=chimpanzee(20)
b=chimpanzee(25)
c=gorrilla(50)

for i in (a,b,c):
 i.cry()
 print(i.weight)
 i.eat()

Так что друзья, которые были все на сегодня. Давайте узнаем больше о Python в предстоящие дни …..

Обучение Python (72 частью серии)

Оригинал: “https://dev.to/aatmaj/learning-python-intermediate-course-day-42-polymorphism-a61”