Gratulacje

Wprowadzenie do programowania obiektowego w Pythonie

George Boorman

Curriculum Manager, DataCamp

Klasy i obiekty

Termin Definicja
Klasa Szablon/wzorzec służący do tworzenia obiektów
Obiekt Połączenie danych i funkcjonalności; egzemplarz klasy
Wprowadzenie do programowania obiektowego w Pythonie

Atrybuty i metody

Termin Definicja
Klasa Szablon/wzorzec służący do tworzenia obiektów
Obiekt Połączenie danych i funkcjonalności; egzemplarz klasy
Stan Dane powiązane z obiektem, przypisywane przez atrybuty
Zachowanie Funkcjonalność obiektu, definiowana przez metody
Wprowadzenie do programowania obiektowego w Pythonie

Podstawowe koncepcje

Enkapsulacja:

  • Grupowanie danych i metod

Dziedziczenie:

  • Rozszerzanie funkcjonalności istniejącego kodu

Polimorfizm:

  • Tworzenie ujednoliconego interfejsu
Wprowadzenie do programowania obiektowego w Pythonie

Porównania

Operator Metoda
== __eq__()
!= __ne__()
>= __ge__()
<= __le__()
> __gt__()
< __lt__()
Wprowadzenie do programowania obiektowego w Pythonie

Reprezentacja tekstowa

__str__()

  • print(obj), str(obj)
print([1,2,3])
[1 2 3]
str([1,2,3])
'[1, 2, 3]' 
  • nieformalna, dla użytkownika końcowego
  • reprezentacja stringowa

__repr__()

  • repr(obj), wyświetlanie w konsoli
repr([1,2,3])
[1,2,3]
[1,2,3]
[1,2,3]
  • formalna, dla dewelopera
  • reprezentacja reprodukowana
  • zapasowa dla print()
Wprowadzenie do programowania obiektowego w Pythonie

Obsługa błędów

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)
Wprowadzenie do programowania obiektowego w Pythonie

Co dalej?

  • Wielokrotne dziedziczenie
  • Deskryptory
  • Niestandardowe atrybuty
  • Niestandardowe iteratory
  • Podpowiedzi typów
  • Abstrakcyjne klasy bazowe
Wprowadzenie do programowania obiektowego w Pythonie

Czas na ćwiczenia!

Wprowadzenie do programowania obiektowego w Pythonie

Preparing Video For Download...