Вітаємо

Вступ до обʼєктно-орієнтованого програмування в Python

George Boorman

Curriculum Manager, DataCamp

Класи та об'єкти

Термін Визначення
Class Кресленик/шаблон для створення об'єктів
Object Поєднання даних і функціональності; екземпляр класу
Вступ до обʼєктно-орієнтованого програмування в Python

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

Термін Визначення
Class Кресленик/шаблон для створення об'єктів
Object Поєднання даних і функціональності; екземпляр класу
State Дані, пов'язані з об'єктом, задані через атрибути
Behavior Функціональність об'єкта, визначена через методи
Вступ до обʼєктно-орієнтованого програмування в 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)
  • запасний варіант для 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...