Введение в ООП в Python
Сейчас мы займемся изучением ООП в Python. Давайте рассмотрим пример из жизни, а потом перенесем его в Python.
В качестве примера возьмем автомобиль. У него есть колеса, цвет, вид кузова, объем двигателя и так далее. Кроме того, водитель может отдавать ему команды: ехать, остановится, повернуть направо, налево и т.п.
Можно говорить о том, что существует некоторый класс автомобилей, обладающий общими свойствами (у всех есть колеса и всем им можно отдавать команды).
Конкретный автомобиль, стоящий на улице - это представитель этого класса, или, другими словами, объект этого класса. У всех объектов этого класса есть свойства: количество колес, цвет, вид кузова и методы: ехать, остановится, повернуть направо, налево.
Другими словами сам класс - это чертеж, по которым на заводе делаются автомобили. Объект же - это сама машина, сделанная по этим чертежам.
В Python класс создается с помощью ключевого
слова class, за которым следует название
этого класса. Давайте сделаем класс Car:
class Car:
# тут код, то есть Python-чертеж автомобиля
pass
Укажем теперь, что любой автомобиль, созданный по этому чертежу, будет иметь свойство для цвета и свойство для количества топлива. В Python эти свойства задают уже готовому объекту, а не внутри класса.
Давайте теперь сделаем методы нашего класса.
В Python методы, подобно обычным функциям,
объявляются с помощью ключевого слова
def. Первым параметром метода
пишется self.
Как уже упоминалось выше, наш автомобиль может ехать, может поворачивать, может останавливаться. Сделаем соответствующие методы в нашем классе:
class Car:
# Команда ехать:
def go(self):
# какой-то Python код
pass
# Команда поворачивать:
def turn(self):
# какой-то Python код
pass
# Команда остановиться:
def stop(self):
# какой-то Python код
pass
Мы с вами сделали чертеж нашего автомобиля. Теперь нужно отправится на завод и сделать объект этого класса (то есть конкретный автомобиль).
В Python объект создается вызовом класса с круглыми скобками:
Car()
Однако, если просто создать объект класса - это ни к чему не приведет (это все равно, что, к примеру, объявить список и никуда его не записать). Нам нужна переменная для хранения этого объекта.
Пусть эта переменная будет называться my_car
- запишем в нее созданный нами объект:
my_car = Car()
После создания автомобиля можно обращаться к его свойствам. Обращение к ним происходит через точку. Давайте установим свойства нашего объекта:
my_car = Car() # командуем заводу сделать автомобиль
# Устанавливаем свойства объекта:
my_car.color = 'red' # красим в красный цвет
my_car.fuel = 50 # заливаем топливо
Все, наш автомобиль создан, покрашен и заправлен. Теперь мы можем отдавать ему команды через методы этого автомобиля.
Обращение к методам также происходит через точку, но, в отличие от свойства, после имени метода следует писать круглые скобки. Давайте покомандуем нашим объектом:
my_car.go()
my_car.turn()
my_car.stop()