Поздравляем

Введение в объектно-ориентированное программирование на Python

George Boorman

Curriculum Manager, DataCamp

Классы и объекты

Термин Определение
Класс Шаблон/blueprint для создания объектов
Объект Совокупность данных и функциональности; экземпляр класса
Введение в объектно-ориентированное программирование на Python

Атрибуты и методы

Термин Определение
Класс Шаблон/blueprint для создания объектов
Объект Совокупность данных и функциональности; экземпляр класса
Состояние Данные объекта, задаваемые через атрибуты
Поведение Функциональность объекта, определяемая через методы
Введение в объектно-ориентированное программирование на Python

Ключевые концепции

Инкапсуляция:

  • Объединение данных и методов

Наследование:

  • Расширение функциональности существующего кода

Полиморфизм:

  • Создание единого интерфейса
Введение в объектно-ориентированное программирование на Python

Операторы сравнения

Оператор Метод
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Введение в объектно-ориентированное программирование на Python

Строковое представление

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • неформальный, для пользователя
  • strоковое представление

__repr__()

  • repr(obj), вывод в консоли
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • формальный, для разработчика
  • reprодуцируемое reprезентирование
  • запасной вариант для print()
Введение в объектно-ориентированное программирование на Python

Обработка ошибок

class BalanceError(Exception): 
    pass

class Customer: def __init__(self, name, balance): if balance < 0 : raise BalanceError("Balance has to be non-negative!") else: self.name, self.balance = name, balance
# Use try-except to catch errors try: cust = Customer("Larry Torres", -100) except BalanceError: cust = Customer("Larry Torres", 0)
Введение в объектно-ориентированное программирование на Python

Что дальше?

  • Множественное наследование
  • Дескрипторы
  • Пользовательские атрибуты
  • Пользовательские итераторы
  • Аннотации типов
  • Абстрактные базовые классы
Введение в объектно-ориентированное программирование на Python

Давайте потренируемся!

Введение в объектно-ориентированное программирование на Python

Preparing Video For Download...