0Pricing
Learn AI with Python · Урок

Полиморфизм

Изучите, как полиморфизм обеспечивает гибкий и динамичный код

«Полиморфизм» — бесплатный урок Learn AI with Python на CoddyKit. Это урок 4 из 6. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Learn AI with Python, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Learn AI with Python содержит 6 уроков всего.

Введение в полиморфизм

Введение в полиморфизм

Полиморфизм — это основополагающая концепция объектно-ориентированного программирования (ООП), которая позволяет рассматривать объекты разных классов как объекты общего суперкласса. Он обеспечивает гибкость и повторное использование кода.

В этом уроке Вы узнаете, как реализовать полиморфизм в Python с помощью методов и классов.

Полиморфизм — иллюстрация 1

Что такое полиморфизм?

Что такое полиморфизм?

Полиморфизм позволяет методам разных классов иметь одно и то же имя, но вести себя по-разному. Благодаря этому код становится гибче и его проще расширять.

# Defining a superclass
class Animal:
    # Method in the superclass
    def speak(self):
        print("Animal speaks")  # Generic message for all animals

# Defining a subclass that overrides the speak method
class Dog(Animal):
    def speak(self):
        print("Dog barks")  # Specific behavior for Dog

Полиморфизм с помощью методов

Полиморфизм с помощью методов

Методы с одинаковыми именами в разных классах могут иметь разные реализации.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

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

Полиморфизм с помощью методов

Методы с одинаковыми именами в разных классах могут иметь разные реализации.

# Another subclass with its own implementation of the speak method
class Cat(Animal):
    def speak(self):
        print("Cat meows")  # Specific behavior for Cat

# Function demonstrating polymorphism
# It can accept objects of any subclass of Animal

def animal_sound(animal):
    animal.speak()  # Calls the appropriate speak method based on the object type

# Creating objects of Dog and Cat
dog = Dog()
cat = Cat()

# Calling the function with different objects
animal_sound(dog)  # Outputs: Dog barks
animal_sound(cat)  # Outputs: Cat meows

Полиморфизм с помощью функций

Полиморфизм с помощью функций

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

# Defining two unrelated classes
class Bird:
    def fly(self):
        print("Bird flies")  # Behavior specific to birds

class Plane:
    def fly(self):
        print("Plane flies")  # Behavior specific to planes

# Function demonstrating polymorphism
# It can accept objects of both Bird and Plane

def flying_object(obj):
    obj.fly()  # Calls the appropriate fly method based on the object type

# Creating objects of Bird and Plane
bird = Bird()
plane = Plane()

# Calling the function with different objects
flying_object(bird)  # Outputs: Bird flies
flying_object(plane)  # Outputs: Plane flies

Полиморфизм с помощью наследования

Полиморфизм с помощью наследования

Полиморфизм часто реализуется с помощью наследования, при котором подклассы переопределяют методы суперкласса.

# Superclass representing a generic vehicle
class Vehicle:
    def start(self):
        print("Vehicle starts")  # Generic behavior for all vehicles

# Subclass representing a specific type of vehicle
class Car(Vehicle):
    def start(self):
        print("Car starts")  # Specific behavior for cars

# Subclass representing another specific type of vehicle
class Bike(Vehicle):
    def start(self):
        print("Bike starts")  # Specific behavior for bikes

# Function demonstrating polymorphism
# It can accept objects of any subclass of Vehicle

def start_vehicle(vehicle):
    vehicle.start()  # Calls the appropriate start method based on the object type

# Creating objects of Car and Bike
car = Car()
bike = Bike()

# Calling the function with different objects
start_vehicle(car)  # Outputs: Car starts
start_vehicle(bike)  # Outputs: Bike starts

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

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

Полиморфизм даёт несколько преимуществ:

  • Повторное использование и гибкость кода.
  • Повышение читаемости и упорядоченности кода.
  • Использование общих интерфейсов.

Пример из реальной жизни

Пример из реальной жизни

Рассмотрим пример полиморфизма из реальной жизни.

# Real-world example of polymorphism
class Developer:
    def work(self):
        print("Writing code")  # Specific task for developers

class Designer:
    def work(self):
        print("Designing user interfaces")  # Specific task for designers

# Function demonstrating polymorphism
# It can accept objects of both Developer and Designer

def workday(employee):
    employee.work()  # Calls the appropriate work method based on the object type

# Creating objects of Developer and Designer
developer = Developer()
designer = Designer()

# Calling the function with different objects
workday(developer)  # Outputs: Writing code
workday(designer)  # Outputs: Designing user interfaces

Распространённые ошибки при использовании полиморфизма

Распространённые ошибки при использовании полиморфизма

Вот некоторых ошибок следует избегать:

  • Забывать переопределять методы в подклассах, когда это требуется.
  • Путать порядок разрешения методов (MRO) при множественном наследовании.
  • Использовать полиморфизм без необходимости для простых задач.

Что мы узнали

Что мы узнали

В этом уроке Вы узнали:

  • Что такое полиморфизм и как он работает в Python.
  • Как реализовать полиморфизм с помощью методов и наследования.
  • О преимуществах использования полиморфизма в ООП.

Отличная работа! Перейдите к следующей теме.

Полиморфизм — иллюстрация 12

Часто задаваемые вопросы

Урок «Полиморфизм» бесплатный?

Да — полный текст урока «Полиморфизм» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Learn AI with Python, подпишись на CoddyKit PRO. Курс Learn AI with Python содержит 6 уроков всего.

Чему я научусь в уроке «Полиморфизм»?

Изучите, как полиморфизм обеспечивает гибкий и динамичный код Ты практикуешь Learn AI with Python с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Learn AI with Python?

Предыдущий опыт не требуется. Learn AI with Python на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 6.

Сколько времени занимает урок «Полиморфизм»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Learn AI with Python?

Да. Каждый урок Learn AI with Python включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Классы и объекты
  2. Атрибуты и методы
  3. Наследование
  4. Полиморфизм
  5. Инкапсуляция и абстракция
  6. Магические методы (__str__, __repr__ и другие)
← Назад к Learn AI with Python