Сегодня мы познакомимся с ООП – объектно-ориентированным программированием в Питоне 2.7.

В Питоне часто встречаются объекты. Ранее мы часто в коде создавали переменные.

Например, переменная vozrast – это объект:

vozrast = 35

Далее с этим объектом мы могли делать все, что угодно, даже присвоить его значение другому объекту (то есть другой переменной).

Основой ООП в Python является понятие «Класс».

Класс – это как бы инструкция, каркас, чертеж, по которому мы можем создавать любые объекты в дальнейшем. Если взять пример из биологии, то «Человек» – это «Класс», а «Сестра Лариса» - это «объект класса Человек», обладающий своими свойствами: женский пол, светловолосая, рост 160 см, вес 50 кг и т.д.

Внимание: в ООП объект класса называется по-другому – экземпляр класса.

 

Практический пример

Создаем на рабочем столе файл test29.py Не забываем про кодировку файла. Пишем в файл руками следующий программный код:

# -*- coding: utf- 8 -*-

class Igrok():  #Объявляем класс
    rost = 180 #Эта переменная называется поле, или свойство, или атрибут класса
    ves = 80 #Это также атрибут класса
    name = 'Egor'
    vozrast = 25

vratar = Igrok()  #А это – отдельный объект, или экземпляр класса Игрок
print (vratar.name)  # Выводим на экран имя объекта vratar
print (vratar.vozrast)

 

Сначала мы объявляем (создаем) класс под названием Igrok. Прописываем поля этого класса (не забываем про 4 пробела-отступа), эти поля также называют свойства или атрибуты (так мы и будем их называть – атрибуты класса). Это рост, вес, имя и возраст игрока.

Ниже мы создаем экземпляр класса Игрок (то есть создаем отдельный объект) под названием «вратарь». Чтобы это сделать, мы ставим знак присваивания (равно) и прописываем название класса со скобками. Чем-то похоже на вызов функции, что мы проходили в уроке 22 про функцию в Питоне.

Далее выводим на экран имя вратаря. В нашем случае имя вратаря задано по умолчанию в атрибутах класса – это имя Егор. Далее выводим его возраст. Опять по умолчанию – 25 лет.

А если мы создадим еще один экземпляр класса Игрок и назовем его Нападающий 1?

napadayuchiy_1 = Igrok()
napadayuchiy_1.name = u'Сергей Иванов'
napadayuchiy_1.vozrast = 27
print u"Сегодня на позиции первого нападающего играет %s. Его возраст - %s лет." % (napadayuchiy_1.name, napadayuchiy_1.vozrast)

 

Здесь нам уже надо изменить атрибуты класса для конкретного игрока napadayuchiy_1: при создании экземпляра класса мы прописываем его имя и его возраст.

Точно таким же образом мы можем задать атрибуты для любого другого нападающего (экземпляра класса Игрок): вес, рост, его имя и возраст.

 

Теперь открываем программу PowerShell и прописываем команду: python desktop/test29.py

В итоге у вас должно получиться также, как на картинке.

 

Итак, самое главное.

Класс – очень важная составляющая программирования на Питоне. Без знания классов и ООП в целом программировать на Python можно. Обычно таких начальных знаний программирования достаточно для непрограммистов. Например, аналитики имеют начальные знания программирования на Питоне, которых им достаточно для составления своих отчетов. Или биотехнологи – они также составляют отчеты на Пайтоне.

Но если вы действительно хотите программировать на Питоне профессионально – вам не обойтись без знаний ООП и классов.
Что было бы, если бы не было классов. Вернемся к нашему примеру выше.

Если бы мы не прописали класс Игрок, то мы каждого бы игрока прописывали заново.

А с классом все проще: задал атрибуты класса, и в программе тренер вводит в соответствующие поля имя, возраст, вес игроков и т.д. То есть работает интерактивный сценарий.

 

Домашнее задание

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