Gratulujeme

Úvod do objektově orientovaného programování v Pythonu

George Boorman

Curriculum Manager, DataCamp

Třídy a objekty

Pojem Definice
Třída Plán/šablona pro tvorbu objektů
Objekt Kombinace dat a funkcionality; instance třídy
Úvod do objektově orientovaného programování v Pythonu

Atributy a metody

Pojem Definice
Třída Plán/šablona pro tvorbu objektů
Objekt Kombinace dat a funkcionality; instance třídy
Stav Data spojená s objektem, přiřazená přes atributy
Chování Funkcionalita objektu, definovaná přes metody
Úvod do objektově orientovaného programování v Pythonu

Základní koncepty

Zapouzdření:

  • Sdružení dat a metod

Dědičnost:

  • Rozšíření funkcionality existujícího kódu

Polymorfismus:

  • Vytváření jednotného rozhraní
Úvod do objektově orientovaného programování v Pythonu

Porovnávání

Operátor Metoda
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Úvod do objektově orientovaného programování v Pythonu

Řetězcová reprezentace

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • neformální, pro koncového uživatele
  • stringová reprezentace

__repr__()

  • repr(obj), výpis v konzoli
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • formální, pro vývojáře
  • reprodukovatelná reprezentace
  • záložní pro print()
Úvod do objektově orientovaného programování v Pythonu

Zpracování chyb

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)
Úvod do objektově orientovaného programování v Pythonu

Co dál?

  • Vícenásobná dědičnost
  • Deskriptory
  • Vlastní atributy
  • Vlastní iterátory
  • Typové anotace
  • Abstraktní základní třídy
Úvod do objektově orientovaného programování v Pythonu

Pojďme si procvičit!

Úvod do objektově orientovaného programování v Pythonu

Preparing Video For Download...