Programowanie zorientowane obiektowo w Pythonie. Tworzenie solidnych i - Helion
Tytuł oryginału: Python Object-Oriented Programming: Build robust and maintainable object-oriented Python applications and libraries, 4th Edition
Tłumaczenie: Piotr Rajca
ISBN: 978-83-283-8949-6
stron: 694, Format: 168x237, okładka: mi
Data wydania: 2022-11-01
Księgarnia: Helion
Cena książki: 89,40 zł (poprzednio: 149,00 zł)
Oszczędzasz: 40% (-59,60 zł)
Osoby które kupowały "Programowanie zorientowane obiektowo w Pythonie. Tworzenie solidnych i ", wybierały także:
- GraphQL. Kurs video. Buduj nowoczesne API w Pythonie 169,00 zł, (50,70 zł -70%)
- Receptura na Python. Kurs Video. 54 praktyczne porady dla programist 199,00 zł, (59,70 zł -70%)
- Podstawy Pythona z Minecraftem. Kurs video. Piszemy pierwsze skrypty 149,00 zł, (44,70 zł -70%)
- Twórz gry w Pythonie. Kurs video. Poznaj bibliotekę PyGame 249,00 zł, (74,70 zł -70%)
- Data Science w Pythonie. Kurs video. Algorytmy uczenia maszynowego 199,00 zł, (59,70 zł -70%)
Spis treści
Programowanie zorientowane obiektowo w Pythonie. Tworzenie solidnych i łatwych w utrzymaniu aplikacji i bibliotek. Wydanie IV -- spis treści
O autorach
O recenzencie
Wstęp
Rozdział 1. Projektowanie obiektowe
- Wprowadzenie do obiektowości
- Obiekty i klasy
- Określanie atrybutów i zachowań
- Dane opisują stan obiektu
- Zachowania są akcjami
- Ukrywanie szczegółów i tworzenie interfejsów publicznych
- Kompozycja
- Dziedziczenie
- Dziedziczenie zapewnia abstrakcję
- Wielokrotne dziedziczenie
- Studium przypadku
- Wprowadzenie i omówienie problemu
- Widok kontekstu
- Widok logiczny
- Widok procesu
- Widok programistyczny
- Widok fizyczny
- Wnioski
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 2. Obiekty w Pythonie
- Prezentacja podpowiedzi typów
- Sprawdzanie typów
- Tworzenie klas w Pythonie
- Dodawanie atrybutów
- Zapewnianie możliwości działania
- Inicjalizacja obiektów
- Podpowiedzi typów i wartości domyślne
- Podawanie wyjaśnień w napisach dokumentujących
- Moduły i pakiety
- Organizowanie modułów
- Organizowanie kodu w moduły
- Kto ma dostęp do moich danych?
- Biblioteki innych twórców
- Studium przypadku
- Widok logiczny
- Próbki i ich stan
- Zmiany stanu próbek
- Odpowiedzialności klasy
- Klasa TrainingData
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 3. Kiedy obiekty są do siebie podobne
- Proste dziedziczenie
- Rozszerzanie typów wbudowanych
- Przesłanianie i super
- Wielokrotne dziedziczenie
- Problematyczny diament
- Różne zestawy argumentów
- Polimorfizm
- Studium przypadku
- Widok logiczny
- Jeszcze jedna odległość
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 4. Oczekując nieoczekiwanego
- Zgłaszanie wyjątków
- Zgłaszanie wyjątku
- Efekty wyjątków
- Obsługa wyjątków
- Hierarchia wyjątków
- Definiowanie własnych wyjątków
- Wyjątki nie są wyjątkowe
- Studium przypadku
- Widok kontekstu
- Widok przetwarzania
- Co może pójść źle?
- Nieprawidłowe zachowanie
- Tworzenie próbek na podstawie danych z plików CSV
- Walidacja wartości wyliczeniowych
- Odczyt plików CSV
- Nie powtarzaj się
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 5. Kiedy korzystać z programowania obiektowego
- Traktujmy obiekty jako obiekty
- Dodawanie zachowań do klas danych przy wykorzystaniu właściwości
- Wszystko o właściwościach
- Dekoratory - inny sposób tworzenia właściwości
- Określanie, kiedy należy używać właściwości
- Obiekty menedżerów
- Usuwanie powtórzeń
- W praktyce
- Studium przypadku
- Walidacja danych wejściowych
- Dzielenie próbek wejściowych
- Hierarchia klas próbek
- Wyliczenie purpose
- Właściwości ustawiające
- Powtarzające się instrukcje if
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 6. Abstrakcyjne klasy bazowe i przeciążanie operatorów
- Tworzenie abstrakcyjnej klasy bazowej
- Abstrakcyjne klasy bazowe kolekcji
- Abstrakcyjne klasy bazowe i podpowiedzi typów
- Moduł collections.abc
- Tworzenie własnych abstrakcyjnych klas bazowych
- Wyjaśniamy magię
- Przeciążanie operatorów
- Rozszerzanie klas wbudowanych
- Metaklasy
- Studium przypadku
- Rozszerzanie klasy listy w celu utworzenia dwóch podlist
- Podział poprzez tasowanie
- Dzielenie próbek metodą inkrementalną
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 7. Struktury danych w Pythonie
- Puste obiekty
- Kroki i krotki nazwane
- Krotki nazwane i typing.NamedTuple
- Klasy danych
- Słowniki
- Przypadki stosowania słowników
- Stosowanie defaultdict
- Listy
- Sortowanie list
- Zbiory
- Trzy typy kolejek
- Studium przypadku
- Model logiczny
- Niezmienne klasy danych
- Klasy NamedTuple
- Wniosek
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 8. Łączenie programowania obiektowego i funkcyjnego
- Wbudowane funkcje Pythona
- Funkcja len()
- Funkcja reversed()
- Funkcja enumerate()
- Alternatywa dla przeciążania metod
- Domyślne wartości parametrów
- Zmienne listy argumentów
- Rozpakowywanie argumentów
- Funkcje są także obiektami
- Obiekty funkcji i funkcje zwrotne
- Stosowanie funkcji do modyfikowania klas
- Obiekty wywoływalne
- Plikowe operacje wejścia-wyjścia
- Działanie w kontekście
- Studium przypadku
- Ogólna postać sposobu przetwarzania
- Rozdzielanie danych
- Ponowne przemyślenie problemu klasyfikacji
- Funkcja partition()
- Podział danych w jednym przejściu
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 9. Łańcuchy, serializacja i ścieżki do plików
- Łańcuchy znaków
- Operacje na łańcuchach znaków
- Formatowanie łańcuchów znaków
- Łańcuchy znaków są zapisywane w Unicode
- Wyrażenia regularne
- Dopasowywanie wzorców
- Parsowanie informacji przy użyciu wyrażeń regularnych
- Ścieżki dostępu do plików
- Serializacja obiektów
- Dostosowywanie działania modułu pickle
- Serializacja danych w formacie JSON
- Studium przypadku
- Konstrukcja formatu CSV
- Wczytywanie danych CSV w formie słowników
- Wczytywanie danych CSV w formie listy
- Serializacja danych JSON
- Format JSON z danymi rozdzielanymi znakami nowego wiersza
- Walidacja danych JSON
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 10. Wzorzec Iterator
- Krótko o wzorcach projektowych
- Iteratory
- Protokół iteratorów
- Listy składane
- Wyrażenia list składanych
- Wyrażenia zbiorów i słowników składanych
- Wyrażenia generatorów
- Funkcje generatorów
- Zwracanie elementów z innego iteratora
- Stosy generatorów
- Studium przypadku
- Zarys konstruowania zbiorów
- Wiele podziałów
- Testowanie
- Niezbędny algorytm k-NN
- Algorytm k-NN korzystający z modułu bisect
- Algorytm k-NN korzystający z modułu heapq
- Wniosek
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 11. Często stosowane wzorce projektowe
- Wzorzec Dekorator
- Przykład wzorca Dekorator
- Dekoratory w Pythonie
- Wzorzec Obserwator
- Przykład wzorca Obserwator
- Wzorzec Strategia
- Przykład wzorca Strategia
- Wzorzec Strategia w Pythonie
- Wzorzec Polecenie
- Przykład wzorca Polecenie
- Wzorzec Stan
- Przykład wzorca Stan
- Stan a Strategia
- Wzorzec Singleton
- Implementacja wzorca Singleton
- Studium przypadku
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 12. Zaawansowane wzorce projektowe
- Wzorzec Adapter
- Przykład wzorca Adapter
- Wzorzec Fasada
- Przykład wzorca Fasada
- Wzorzec Piórko
- Przykład implementacji wzorca Piórko w Pythonie
- Przechowywanie w buforze wielu komunikatów
- Optymalizacja pamięci przy użyciu atrybutu __slots__
- Wzorzec Fabryka abstrakcyjna
- Przykład wzorca Fabryka abstrakcyjna
- Fabryki abstrakcyjne w Pythonie
- Wzorzec Kompozyt
- Przykład wzorca Kompozyt
- Wzorzec Metoda szablonowa
- Przykład wzorca Metoda szablonowa
- Studium przypadku
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 13. Testowanie oprogramowania obiektowego
- Po co testować?
- Programowanie na podstawie testów
- Cele testowania
- Wzorce testowania
- Testowanie przy użyciu frameworka unittest
- Wykonywanie testów jednostkowych przy użyciu pakietu pytest
- Funkcje setup i teardown pakietu pytest
- Przygotowania i porządki przy użyciu konfiguracji początkowych
- Bardziej wyszukane konfiguracje początkowe
- Pomijanie testów narzędzia pytest
- Imitowanie obiektów przy użyciu atrap
- Dodatkowe techniki korygowania
- Obiekt sentinel
- Ile testów wystarczy?
- Testowanie a programowanie
- Studium przypadku
- Testy jednostkowe klas obliczających odległości
- Testy jednostkowe klasy Hyperparameter
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Rozdział 14. Współbieżność
- Podstawowe informacje o przetwarzaniu współbieżnym
- Wątki
- Wiele problemów związanych z wątkami
- Wieloprocesowość
- Pule procesów
- Kolejki
- Problemy związane z wieloprocesowością
- Moduł concurrent.futures
- Moduł AsyncIO
- AsyncIO w działaniu
- Czytanie kodu AsyncIO
- AsyncIO w rozwiązaniach sieciowych
- Prezentacja aplikacji zapisującej wpisy w dzienniku
- Klienty AsyncIO
- Rozwiązanie problemu ucztujących filozofów
- Studium przypadku
- Przypomnij sobie
- Ćwiczenia
- Podsumowanie
Skorowidz