Введение
Это подробное руководство для начинающих по объектно-ориентированному программированию на Python. Цель этого руководства — дать вам представление об объектно-ориентированном программировании и помочь вам понять его основы на практических примерах.
В этом руководстве мы охватывают следующие понятия:
- Что такое ООП?
- Класс против объекта.
- Атрибуты против методов.
- Наследование
Если вам понравилась эта статья, не забудьте подписаться на меня, чтобы получать больше статей о программировании! Если у вас есть какие-либо вопросы, не стесняйтесь оставлять их в комментариях или вы можете связаться со мной лично.
Требования
- Базовое понимание Python.
- Установлен текстовый редактор и питон.
Что такое объектно-ориентированное программирование в Python?
Объектно-ориентированное программирование — это подход к моделированию элементов реального мира, таких как игроки в игре или сотрудники компании. Простым примером объекта является автомобиль с такими свойствами, как цвет, скорость, марка и вес, а также такие методы, как увеличение или уменьшение скорости, остановка, поворот направо или налево, движение назад…
Объект имеет в основном две характеристики:
- атрибуты
- поведение
Прежде чем продолжить чтение этой статьи… Если вы меня не знаете, меня зовут Хамза, я инженер-программист C# и машинного обучения. Если вы хотите начать разрабатывать программное обеспечение и изучать машинное обучение в качестве инженера-программиста, я буду сопровождать вас в этом приключении и давать вам советы каждый день, следуйте за мной и подпишитесь на мою рассылку новостей, чтобы получать мои ежедневные статьи.
Класс и объект
Мы можем определить класс как схему объекта. Мы можем думать об этом как о наброске автомобиля, содержащем все подробности об автомобиле. Когда класс определен, определяется только описание объекта. Таким образом, память или хранилище не выделяются. Между тем, объект (экземпляр) — это экземпляр класса, объект — это автомобиль красного цвета, например, с максимальной скоростью 300 км/ч.
Здесь я создал простую визуализацию разницы между классом и объект:
Если концепция ООП еще не ясна для вас, не волнуйтесь! Следующий практический пример облегчит вам задачу.
ООП в питоне
Атрибуты
Атрибуты — это характеристика объекта.
Давайте возьмем предыдущий пример и определим класс в Python с именем Car. Чтобы определить класс в Python, мы используем ключевое слово class следующим образом:
class Car: pass
Теперь давайте определим наш класс с некоторыми атрибутами:
class Car: def __init__(self, color, brand, maxSpeed): self.color = color self.brand = brand self.maxSpeed = maxSpeed
Функция инициализации является методом инициализации и вызывается при создании экземпляра объекта, например, если мы хотим создать две машины, каждая с определенными свойствами, мы создадим два объекта предыдущего класса, один из которых называется car1, а другой car2, например. :
car1 = Car('red', 'audi', 300) car2 = Car("blue", "BMW", 120)
Теперь, если мы хотим получить атрибут объекта, мы просто наберем:
print(car1.color)
тогда мы получим красный цвет на выходе.
Методы
Методы — это функции, определенные внутри тела класса. Они используются для определения поведения объекта.
Теперь давайте определим метод с именем changeMaxSpeed():
class Car: def __init__(self, color, brand, maxSpeed): self.color = color self.brand = brand self.maxSpeed = maxSpeed def changeMaxSpeed(self, newMaxSpeed): self.maxSpeed = newMaxSpeed
Эта функция принимает два параметра: self, который указывает на созданный объект, и newMaxSpeed, новое значение максимальной скорости.
- Примечание :
Метод должен иметь дополнительный первый параметр в определении метода, который обычно называется «self». Мы не даем значение для этого параметра при вызове метода, его предоставляет Python. Если у нас есть метод, который не принимает аргументов, то нам все равно нужно иметь один аргумент. Это похоже на этот указатель в C++ и эту ссылку в Java.
Теперь давайте создадим автомобиль с максимальной скоростью 200 и изменим его с помощью нашего метода:
car1 = Car('red', 'audi', 200) car1.changeMaxSpeed(300)
Здесь car1 играет роль self, поэтому его указывать не обязательно, если вы его укажете, то выдаст ошибку о том, что ожидался один параметр, а были даны два.
Наследование
Чтобы понять концепцию наследования, мы возьмем простой пример. Представьте, что у нас есть класс, называемый транспортным средством, и наш предыдущий класс, называемый автомобилем, когда мы впервые создали класс транспортного средства следующим образом:
class Vehicle: def __init__(self, color, maxSpeed): self.color = color self.maxSpeed = maxSpeed def changeMaxSpeed(self, newMaxSpeed): self.maxSpeed = newMaxSpeed def changeColor(self, newColor): self.color = newColor
Теперь, когда мы будем создавать класс Car, мы хотим, чтобы наш класс наследовал от предыдущего класса, а это означает, что мы не хотим снова определять предыдущие атрибуты и методы.
class Car(Vehicle): def __init__(self, color, maxSpeed, brand): self.brand = brand
Теперь мы можем получить доступ к переменным и методам родительского класса
Итак, наследование — это способность одного класса получать или наследовать свойства другого класса. Класс, производный от свойств, называется дочерним классом, а класс, из которого получаются свойства, называется родительским классом.
Спасибо за чтение, и давайте подключаться!
Спасибо за чтение моего блога. Не стесняйтесь подписаться на мою рассылку по электронной почте и подключиться к Twitter
Если вам понравилась эта статья! Не пропустите предстоящие, подпишитесь на меня и подпишитесь на мою рассылку новостей, чтобы получать больше!
До скорой встречи :)