
Объектно-ориентированное программирование.
Практика.

Рассмотрим наглядно примеры с лекции
Свойства класса
- Цвет
- Объем двигателя
- Мощность
- Тип коробки передач
Методы класса
- Ехать
- Остановиться
- Заправиться
- Поставить на сигнализацию
- Включить дворники

Простой пример 1
# класс автотранспорт
class MotorTransport(object):
def __ init __ (self, color, year, auto _ type):
self.color = color
self.year = year
self.auto _ type = auto _ type
# тормозить
def stop(self):
print("Pressing the brake pedal")
# ехать
def drive(self):
print('WRRRRRUM!')
# создадим объект класса Автотранспорт
ferrari _ testarossa = MotorTransport('Red', 1987, 'passenger car')
# жмём на газ и вперёд!
ferrari _ testarossa.drive()
WRRRRRUM!

Простой пример 2
class Time:
def __ init __ (self, hours=0, minutes=0, seconds=0):
self.hours = hours
self.minutes = minutes
self.seconds = seconds
def __ str __ (self):
return "%02i:%02i:%02i" % (self.hours, self.minutes, self.seconds)
t = Time(9,5,10)
print(t)

Задача 0 «Простейший в мире класс»
Создайте простейший в мире класс SimplePass . Затем создайте экземпляр класса и выведите на экран его тип.
Решение:
# Простейший в мире класс.
class SimplePass: pass
# Создаем экземпляр класса.
simp = SimplePass()
# Выводим тип объекта.
print(type(simp))

Задача 1 «Здравствуй, человек!»
Создадим простейший класс в Python у объектов которого есть одно свойство это имя человека и один метод, который реализует приветствие по имени. В основной программе создадим объект класса и вызовем метод приветствие для созданного объекта класса
Примечание.
Класс будет иметь имя GreetClass .
Свойство класса, которое отвечает за имя человека greet _ name.
Метод класса, который отвечает за вывод на экран приветствия будет иметь имя greet
greet _ object = GreetClass("Михаил")
greet _ object.greet()
Решение:
class GreetClass():
def __ init __ (self, name):
self.greet _ name = name
def greet(self):
print("Здравствуйте, %s!" % (self.greet _ name))
greet _ object = GreetClass("Михаил")
greet _ object.greet()

Задача 2 «Здравствуй, добрый человек!»
Пример класса с методом, принимающим параметр. В этом примере параметр принимает метод greet(self, show _ surname).
show _ surname принимает логические значения. Если эта переменная истинна, то программа будет приветствовать пользователя по имени и фамилии. Если переменная ложна, то программа будет приветствовать пользователя только по имени.
name = greetings("Михаил", "Михайлов")
name.greet(False)
Решение:
class greetings():
def __ init __ (self, n, s):
self.name = n
self.surname = s
def greet(self, show _ surname):
if (show _ surname == True):
print("Здравствуйте, %s %s." % (self.name, self.surname))
if (show _ surname == False):
print("Здравствуйте, %s." % self.name)
name = greetings("Михаил", "Михайлов")
name.greet(False)

Практика
1)Создайте класс студента курса, присвойте ему поля: ФИО, название курса, оценки по трём предмета. Выведите на экран его имя, курс на котором он учится и средний бал.

Практика
2)Напиши программу, которая будет запрашивать значения полей для класса студент и создавать новые объекты, после чего осуществлять проверку по списку курсов и если курс на котором учится студент не содержится в списке, то удалять объект.

Практика
3)Создать класс пользователя сайта, с полями (переменными), содержащими информацию о пользователе и методом, который выводит информацию на экран. В классе обязательно должен быть конструктор.