-
nowość
-
promocja
Python. Wprowadzenie - ebook
Python. Wprowadzenie - ebook
Nic dziwnego, że programiści kochają Pythona: jest wszechstronny, czytelny, darmowy i działa na każdej platformie. Można się go stosunkowo szybko nauczyć ... ale jest jeden warunek: aby w pełni wykorzystać jego możliwości, trzeba zdobyć solidne podstawy, zrozumieć kilka trudniejszych koncepcji i... dużo ćwiczyć, pisząc własny kod.
Ta książka stanowi kompleksowe i obszerne wprowadzenie do języka Python. Pomoże Ci opanować jego podstawy i przygotuje do praktycznego zastosowania nabytej wiedzy. To wydanie zostało zaktualizowane i rozszerzone, aby odzwierciedlić zmiany zachodzące w świecie Pythona. Pominięto omówienie nieaktualnej wersji 2.X,opisano nowe narzędzia, dodane do Pythona w wersji 3.12, a także innych jego edycji, które są dziś szeroko używane. Naukę ułatwią Ci liczne quizy, ćwiczenia, pomocne ilustracje i przykładowe fragmenty kodu. To idealne kompendium dla każdego, kto chce szybko zacząć programować w Pythonie i tworzyć wydajny kod wysokiej jakości.
W książce:
- ogólny model składni Pythona
- wbudowane typy obiektów i ich przetwarzanie
- stosowanie funkcji i organizowanie kodu w modułach i pakietach
- obsługa wyjątków i inne narzędzia programistyczne
- zaawansowane narzędzia Pythona, między innymi dekoratory, deskryptory i metaklasy
- kod idiomatyczny, który działa na różnych platformach
Daj się opleść Pythonowi - i wejdź do świata kodu !
Spis treści
Przedmowa
Część I. Wprowadzenie
- 1. Pytania i odpowiedzi dotyczące Pythona
- Dlaczego ludzie używają Pythona?
- Jakość oprogramowania
- Wydajność programistów
- Czy Python jest językiem skryptowym?
- Jakie są zatem wady języka Python?
- Kto dzisiaj używa Pythona?
- Co mogę zrobić za pomocą Pythona?
- Programowanie systemowe
- Graficzne interfejsy użytkownika (GUI) i interfejsy użytkownika (UI)
- Skrypty internetowe
- Integracja komponentów
- Dostęp do baz danych
- Szybkie prototypowanie
- Programowanie numeryczne i naukowe
- I więcej: sztuczna inteligencja, gry, przetwarzanie obrazu, wyszukiwanie danych, testowanie, Excel, aplikacje.
- Jakie są techniczne mocne strony Pythona?
- Jest zorientowany obiektowo i funkcyjny
- Jest darmowy i otwarty
- Jest przenośny
- Ma duże możliwości
- Można go łączyć z innymi językami
- Jest względnie łatwy w użyciu
- Jest względnie łatwy do nauczenia się
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Dlaczego ludzie używają Pythona?
- 2. Jak Python wykonuje programy?
- Wprowadzenie do interpretera Pythona
- Wykonywanie programu
- Z punktu widzenia programisty
- Z punktu widzenia Pythona
- Warianty modeli wykonywania
- Alternatywne implementacje Pythona
- Samodzielne pliki wykonywalne
- Przyszłe możliwości
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 3. Jak uruchamia się programy?
- Instalacja Pythona
- Interaktywny kod
- Uruchamianie interaktywnego środowiska REPL
- Gdzie uruchamiać programy - katalogi z kodem źródłowym
- Czego nie wpisywać - znaki zachęty i komentarze
- Inne środowiska REPL Pythona
- Interaktywne wykonywanie kodu
- Do czego służy sesja interaktywna?
- Pliki źródłowe
- Pierwszy skrypt
- Wykonywanie plików z poziomu wiersza poleceń powłoki
- Sposoby użycia wiersza poleceń
- Inne sposoby uruchamiania plików
- Klikanie ikon plików
- Interfejs użytkownika środowiska IDLE
- Inne środowiska IDE
- Aplikacje na smartfony
- WebAssembly dla przeglądarek
- Notatniki Jupyter do celów naukowych
- Kompilatory AOT dla zwiększenia szybkości
- Uruchamianie kodu w kodzie
- Inne opcje wykonywania kodu
- Jaką opcję wybrać?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Sprawdź swoją wiedzę - ćwiczenia do części I
- Debugowanie kodu w Pythonie
Część II. Obiekty i operacje
- 4. Wprowadzenie do obiektów Pythona
- Hierarchia pojęć w Pythonie
- Dlaczego korzystamy z obiektów wbudowanych?
- Najważniejsze typy danych w Pythonie
- Liczby
- Łańcuchy znaków
- Operacje na sekwencjach
- Niezmienność
- Metody specyficzne dla typu
- Uzyskiwanie pomocy
- Inne sposoby kodowania łańcuchów znaków
- Ciągi znaków w formacie Unicode
- Listy
- Operacje na typach sekwencyjnych
- Operacje specyficzne dla typu
- Sprawdzanie granic
- Zagnieżdżanie
- Listy składane
- Słowniki
- Operacje na odwzorowaniach
- Zagnieżdżanie raz jeszcze
- Brakujące klucze - testowanie za pomocą if
- Sortowanie kluczy - pętle for
- Krotki
- Do czego służą krotki?
- Pliki
- Pliki tekstowe Unicode i binarne
- Inne narzędzia podobne do plików
- Inne typy podstawowe
- Zbiory
- Wartości logiczne i obiekt None
- Typy
- Podpowiedzi typów
- Klasy definiowane przez użytkownika
- I wszystko inne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 5. Typy liczbowe
- Podstawy typów liczbowych Pythona
- Literały liczbowe
- Wbudowane narzędzia liczbowe
- Operatory wyrażeń Pythona
- Połączone operatory stosują się do priorytetów
- Podwyrażenia grupowane są w nawiasach
- Pomieszane typy poddawane są konwersji
- Wprowadzenie: przeciążanie operatorów i polimorfizm
- Liczby w akcji
- Zmienne i podstawowe wyrażenia
- Formaty wyświetlania liczb
- Operatory porównania
- Operatory dzielenia
- Precyzja liczb całkowitych
- Liczby zespolone
- Notacja szesnastkowa, ósemkowa i dwójkowa
- Operacje na poziomie bitów
- Znaki podkreślenia jako separatory w liczbach
- Inne wbudowane narzędzia numeryczne
- Inne typy liczbowe
- Typ Decimal (liczby dziesiętne)
- Typ Fraction (liczby ułamkowe)
- Zbiory
- Wartości Boolean
- Rozszerzenia numeryczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Podstawy typów liczbowych Pythona
- 6. Wprowadzenie do typów dynamicznych
- Sprawa brakujących deklaracji typu
- Zmienne, obiekty i referencje
- Typy powiązane są z obiektami, a nie ze zmiennymi
- Obiekty są uwalniane
- Referencje współdzielone
- Referencje współdzielone a modyfikacje w miejscu
- Referencje współdzielone a równość
- Typy dynamiczne są wszędzie
- Podpowiedzi typów: opcjonalne, nieużywane i po co?
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Sprawa brakujących deklaracji typu
- 7. Łańcuchy znaków
- Łańcuchy znaków - podstawy
- Literały łańcuchów znaków
- Łańcuchy znaków w apostrofach i cudzysłowach są tym samym
- Sekwencje ucieczki reprezentują znaki specjalne
- Surowe łańcuchy znaków blokują sekwencje ucieczki
- Potrójne cudzysłowy i apostrofy kodują łańcuchy znaków będące wielowierszowymi blokami
- Łańcuchy znaków w akcji
- Podstawowe operacje
- Indeksowanie i wycinki
- Narzędzia do konwersji łańcuchów znaków
- Modyfikowanie łańcuchów znaków - część I: działania na sekwencjach
- Metody łańcuchów znaków
- Składnia wywoływania metod
- Metody typów znakowych
- Modyfikowanie łańcuchów znaków - część II: metody łańcuchów znaków
- Więcej metod łańcuchów znaków - analiza składniowa tekstu
- Inne często używane metody łańcuchów znaków
- Formatowanie łańcuchów znaków - triatlon
- Opcje formatowania łańcuchów znaków
- Formatowanie z użyciem wyrażeń formatujących
- Formatowanie łańcuchów z użyciem metody format
- Podstawy
- Zaawansowana składnia wywołań metody format
- Literał formatowania f-string
- A zwycięzcą jest.
- Generalne kategorie typów
- Typy z jednej kategorii współdzielą zbiory operacji
- Typy mutowalne można modyfikować w miejscu
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 8. Listy i słowniki
- Listy
- Listy w akcji
- Podstawowe operacje na listach
- Indeksowanie i wycinki
- Modyfikacja list w miejscu
- Iteracje po listach i składanie list
- Słowniki
- Słowniki w akcji
- Podstawowe operacje na słownikach
- Modyfikacja słowników w miejscu
- Inne metody słowników
- Inne sposoby tworzenia słowników
- Słowniki składane
- Kolejność wstawiania kluczy
- Operator "sumy" dla słowników
- Przykład: baza danych o książkach
- Uwagi na temat korzystania ze słowników
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 9. Krotki, pliki i wszystko inne
- Krotki
- Krotki w akcji
- Dlaczego istnieją listy i krotki?
- Repetytorium: rekordy - krotki nazwane
- Pliki
- Otwieranie plików
- Wykorzystywanie plików
- Pliki w akcji
- Pliki tekstowe i binarne - krótka historia
- Przechowywanie obiektów Pythona w plikach i ich przetwarzanie
- Przechowywanie natywnych obiektów Pythona - moduł pickle
- Przechowywanie obiektów Pythona w formacie JSON
- Przechowywanie obiektów za pomocą innych narzędzi
- Menedżery kontekstu plików
- Inne narzędzia powiązane z plikami
- Przegląd i podsumowanie podstawowych typów obiektów
- Elastyczność obiektów
- Referencje a kopie
- Porównania, testy równości i prawda
- Porównywanie słowników
- Prawda czy fałsz, czyli znaczenie True i False w Pythonie
- Hierarchie typów Pythona
- Obiekty typów
- Inne typy w Pythonie
- Pułapki typów wbudowanych
- Przypisanie tworzy referencje, nie kopie
- Powtórzenie dodaje jeden poziom zagłębienia
- Uwaga na cykliczne struktury danych
- Typów niemutowalnych nie można modyfikować w miejscu
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Sprawdź swoją wiedzę - ćwiczenia do części II
- Krotki
Część III. Instrukcje i składnia
- 10. Wprowadzenie do instrukcji Pythona
- Raz jeszcze o hierarchii pojęciowej języka Python
- Instrukcje Pythona
- Historia dwóch if
- Co dodaje Python?
- Co usuwa Python?
- Skąd bierze się składnia z użyciem wcięć?
- Kilka przypadków specjalnych
- Szybki przykład: interaktywne pętle
- Prosta pętla interaktywna
- Wykonywanie obliczeń na danych wpisywanych przez użytkownika
- Obsługa błędów poprzez sprawdzanie danych wejściowych
- Obsługa błędów za pomocą instrukcji try
- Kod zagnieżdżony na trzy poziomy głębokości
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Raz jeszcze o hierarchii pojęciowej języka Python
- 11. Przypisania, wyrażenia i wyświetlanie
- Instrukcje przypisania
- Formy instrukcji przypisania
- Podstawowe przypisanie
- Przypisanie sekwencji
- Rozszerzona składnia rozpakowania sekwencji w Pythonie 3.x
- Przypisanie z wieloma celami
- Przypisania rozszerzone
- Wyrażenia przypisania nazwanego
- Reguły dotyczące nazw zmiennych
- Instrukcje wyrażeń
- Instrukcje wyrażeń i modyfikacje w miejscu
- Polecenia print
- Funkcja print
- Przekierowanie strumienia wyjściowego
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Instrukcje przypisania
- 12. Testy if i reguły składni
- Instrukcje if
- Ogólny format
- Proste przykłady
- Instrukcja wielokrotnego wyboru
- Instrukcje match
- Podstawowe użycie match
- Zaawansowane użycie match
- Reguły składni Pythona raz jeszcze
- Ograniczniki bloków - reguły tworzenia wcięć
- Ograniczniki instrukcji - wiersze i znaki kontynuacji
- Kilka przypadków specjalnych
- Testy prawdziwości i testy logiczne
- Wyrażenie trójargumentowe if/else
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Instrukcje if
- 13. Pętle while i for
- Pętle while
- Ogólny format
- Przykłady
- Instrukcje break, continue, pass oraz else w pętli
- Ogólny format pętli
- Instrukcja pass
- Instrukcja continue
- Instrukcja break
- Klauzula else pętli
- Pętle for
- Ogólny format
- Przykłady
- Techniki tworzenia pętli
- Pętle z licznikami - range
- Skanowanie sekwencji - while, range, for
- Przetasowania sekwencji - funkcje range i len
- Przechodzenie niewyczerpujące - range kontra wycinki
- Modyfikowanie list - range kontra listy składane
- Przechodzenie równoległe - zip
- Generowanie wartości przesunięcia i elementów - enumerate
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Pętle while
- 14. Iteracje i listy składane
- Iteracje
- Protokół iteracyjny
- Wbudowane funkcje iter i next
- Inne wbudowane typy iterowalne
- Listy składane
- Podstawy list składanych
- Wykorzystywanie list składanych w plikach
- Rozszerzona składnia list składanych
- Listy składane - zawieszenie tematu
- Narzędzia iteracyjne
- Inne zagadnienia związane z iteracjami
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Iteracje
- 15. Wprowadzenie do dokumentacji
- Źródła dokumentacji Pythona
- Komentarze ze znakami #
- Funkcja dir
- Notki dokumentacyjne - __doc__
- PyDoc - funkcja help
- PyDoc - raporty HTML
- Nie tylko notki docstrings - pakiet Sphinx
- Zbiór standardowej dokumentacji
- Zasoby internetowe
- Często spotykane problemy programistyczne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Ćwiczenia do części III
- Źródła dokumentacji Pythona
Część IV. Funkcje i generatory
- 16. Podstawy funkcji
- Dlaczego używamy funkcji?
- Tworzenie funkcji
- Podstawowe narzędzia funkcji
- Zaawansowane narzędzia funkcji
- Ogólne koncepcje związane z funkcjami
- Instrukcje def
- Instrukcje return
- Instrukcja def uruchamiana jest w czasie wykonywania
- Wyrażenie lambda tworzy funkcje anonimowe
- Pierwszy przykład: definicje i wywoływanie
- Definicja
- Wywołanie
- Polimorfizm w Pythonie
- Drugi przykład: przecinające się sekwencje
- Definicja
- Wywołania
- Raz jeszcze o polimorfizmie
- Zmienne lokalne
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 17. Zasięgi
- Podstawy zasięgów w Pythonie
- Reguły dotyczące zasięgów
- Rozwiązywanie nazw - reguła LEGB
- Przykład zasięgu
- Zasięg wbudowany
- Instrukcja global
- Projektowanie programów: minimalizowanie stosowania zmiennych globalnych
- Projektowanie programów: minimalizacja modyfikacji dokonywanych pomiędzy plikami
- Inne metody dostępu do zmiennych globalnych
- Zasięgi a funkcje zagnieżdżone
- Szczegóły dotyczące zasięgów zagnieżdżonych
- Przykłady zasięgów zagnieżdżonych
- Funkcje fabrykujące: domknięcia
- Instrukcja nonlocal
- Podstawy instrukcji nonlocal
- Instrukcja nonlocal w akcji
- Przypadki graniczne
- Opcje zachowania stanu
- Zmienne nonlocal - modyfikowalne, na wywołanie, LEGB
- Zmienne globalne - modyfikowalne, ale współdzielone
- Atrybuty funkcji - modyfikowalne, na wywołanie, jawne
- Klasy - modyfikowalne, na wywołanie, programowanie zorientowane obiektowo
- A zwycięzcą jest.
- Zakresy i domyślne wartości argumentów
- Pętle wymagają wartości domyślnych, nie zasięgów
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Podstawy zasięgów w Pythonie
- 18. Argumenty
- Podstawy przekazywania argumentów
- Argumenty a współdzielone referencje
- Unikanie modyfikacji argumentów mutowalnych
- Symulowanie parametrów wyjścia i wielu wyników działania
- Specjalne tryby dopasowywania argumentów
- Podstawy dopasowywania argumentów
- Składnia dopasowania argumentów
- Dopasowywanie argumentów - szczegóły
- Przykłady ze słowami kluczowymi i wartościami domyślnymi
- Przykłady dowolnych argumentów
- Argumenty tylko ze słowami kluczowymi
- Argumenty tylko pozycyjne
- Kolejność argumentów - szczegóły techniczne
- Kolejność w definicji funkcji
- Kolejność wywoływania
- Przykład z funkcją obliczającą minimum
- Pełne rozwiązanie
- Bonus
- Puenta
- Przykład z uogólnionymi funkcjami działającymi na zbiorach
- Testowanie kodu
- Przykład z utworzeniem własnej funkcji print
- Wykorzystywanie argumentów ze słowami kluczowymi
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Podstawy przekazywania argumentów
- 19. Zaawansowane zagadnienia dotyczące funkcji
- Koncepcje projektowania funkcji
- Funkcje rekurencyjne
- Sumowanie z użyciem rekurencji
- Implementacje alternatywne
- Pętle a rekurencja
- Obsługa dowolnych struktur
- Obiekty funkcji - atrybuty, adnotacje i tym podobne
- Obiekty "pierwszej klasy"
- Introspekcja funkcji
- Atrybuty funkcji
- Adnotacje funkcji i dekoratory
- Funkcje anonimowe - lambda
- Podstawy wyrażeń lambda
- Po co używamy wyrażeń lambda?
- Jak (nie) zaciemniać kodu napisanego w Pythonie?
- Zasięgi: wyrażenia lambda również można zagnieżdżać
- Narzędzia programowania funkcyjnego
- Odwzorowywanie funkcji na obiekty iterowalne - map
- Wybieranie elementów obiektów iterowalnych - funkcja filter
- Łączenie elementów obiektów iterowalnych - funkcja reduce
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 20. Listy składane i generatory
- Listy składane - akt końcowy
- Powtórka z list składanych
- Przykład: listy składane i macierze
- Funkcje i wyrażenia generatorów
- Funkcje generatorów - yield kontra return
- Wyrażenia generatorów - obiekty iterowalne spotykają złożenia
- Różne ciekawostki dotyczące generatorów
- Przykład: generowanie mieszanych sekwencji
- Sekwencje mieszające
- Permutacje: wszystkie możliwe kombinacje
- Przykład: emulowanie funkcji zip i map
- Tworzymy własną implementację funkcji map
- Własna wersja funkcji zip i map z Pythona 2.X
- Funkcje asynchroniczne - krótka historia
- Podstawy funkcji asynchronicznych
- Podsumowanie funkcji asynchronicznych
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Listy składane - akt końcowy
- 21. Wprowadzenie do pomiarów wydajności
- Pomiary wydajności domowymi sposobami
- Moduł pomiaru czasu - ujęcie pierwsze
- Moduł pomiaru czasu - ujęcie drugie
- Skrypt mierzący wydajność
- Wyniki pomiarów czasu iteracji
- Inne rozwiązania dla modułu do pomiaru czasu
- Mierzenie czasu iteracji z wykorzystaniem modułu timeit
- Podstawowe reguły korzystania z modułu timeit
- Automatyczne testy wydajnościowe z użyciem modułu timeit
- Pułapki związane z funkcjami
- Lokalne nazwy są wykrywane w sposób statyczny
- Wartości domyślne i obiekty mutowalne
- Funkcje, które nie zwracają wyników
- Różne problemy związane z funkcjami
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Sprawdź swoją wiedzę - ćwiczenia do części IV
- Pomiary wydajności domowymi sposobami
Część V. Moduły i pakiety
- 22. Moduły - wprowadzenie
- Moduły - podstawy
- Dlaczego używamy modułów?
- Architektura programu w Pythonie
- Struktura programu
- Importowanie i atrybuty
- Moduły biblioteki standardowej
- Jak działa importowanie?
- 1. Odszukanie modułu
- 2. Kompilowanie (o ile jest to potrzebne)
- 3. Wykonanie
- Ścieżka wyszukiwania modułów
- Elementy ścieżki wyszukiwania
- Konfigurowanie ścieżki wyszukiwania
- Lista sys.path
- Wybór pliku modułu
- Nietypowe ścieżki - pliki samodzielne i pakiety
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 23. Podstawy tworzenia modułów
- Tworzenie modułów
- Nazwy modułów
- Inne rodzaje modułów
- Używanie modułów
- Instrukcja import
- Instrukcja from
- Instrukcja from *
- Operacja importowania jest przeprowadzana tylko raz
- Instrukcje import są przypisaniami
- Równoważność instrukcji import oraz from
- Potencjalne pułapki związane z użyciem instrukcji from
- Przestrzenie nazw modułów
- Pliki generują przestrzenie nazw
- Słowniki przestrzeni nazw: __dict__
- Kwalifikowanie nazw atrybutów
- Importowanie a zasięgi
- Zagnieżdżanie przestrzeni nazw
- Przeładowywanie modułów
- Podstawy przeładowywania modułów
- Przykład przeładowywania z użyciem reload
- Różne aspekty przeładowywania
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Tworzenie modułów
- 24. Pakiety modułów
- Stosowanie pakietów
- Podstawy importowania pakietów
- Pakiety a ustawienia ścieżki wyszukiwania
- Tworzenie pakietów
- Podstawowa struktura pakietów
- Pliki __init__.py
- Pliki __main__.py
- Do czego służą pakiety?
- Historia dwóch systemów
- Role pliku inicjalizacji pakietu
- Względne importowanie pakietów
- Względne i bezwzględne importowanie pakietów
- Importowanie względne - za i przeciw
- Importy względne w działaniu
- Pakiety przestrzeni nazw
- Modele importowania w Pythonie
- Uzasadnienie dla pakietów przestrzeni nazw
- Algorytm wyszukiwania modułu
- Pakiety przestrzeni nazw w akcji
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Stosowanie pakietów
- 25. Zaawansowane zagadnienia związane z modułami
- Koncepcje związane z projektowaniem modułów
- Ukrywanie danych w modułach
- Minimalizacja niebezpieczeństw użycia from * - _X oraz __all__
- Zarządzanie dostępem do atrybutów - __getattr__ i __dir__
- Włączanie opcji z przyszłych wersji Pythona: __future__
- Mieszane tryby użycia - __name__ i __main__
- Przykład: testy jednostkowe z wykorzystaniem atrybutu __name__
- Rozszerzenie as dla instrukcji import oraz from
- Introspekcja modułów
- Przykład: wyświetlanie modułów za pomocą __dict__
- Importowanie modułów z użyciem nazwy w postaci ciągu znaków
- Uruchamianie ciągów znaków zawierających kod
- Bezpośrednie wywołania: dwie opcje
- Przykład: przechodnie przeładowywanie modułów
- Pułapki związane z modułami
- Kolizje nazw modułów: pakiety i importowanie względne w pakietach
- W kodzie najwyższego poziomu kolejność instrukcji ma znaczenie
- Instrukcja from kopiuje nazwy, jednak łącza już nie
- Instrukcja from * może zaciemnić znaczenie zmiennych
- Funkcja reload może nie mieć wpływu na obiekty importowane za pomocą from
- Funkcja reload i instrukcja from a testowanie interaktywne
- Rekurencyjne importowanie za pomocą from może nie działać
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Sprawdź swoją wiedzę - ćwiczenia do części V
Część VI. Klasy i programowanie zorientowane obiektowo
- 26. Programowanie zorientowane obiektowo - wprowadzenie
- Po co używa się klas?
- Programowanie zorientowane obiektowo z dystansu
- Wyszukiwanie atrybutów dziedziczonych
- Klasy a instancje
- Wywołania metod klasy
- Tworzenie drzew klas
- Przeciążanie operatorów
- Programowanie zorientowane obiektowo oparte jest na ponownym wykorzystaniu kodu
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- 27. Podstawy tworzenia klas
- Klasy generują wiele obiektów instancji
- Obiekty klas udostępniają zachowania domyślne
- Obiekty instancji są rzeczywistymi elementami
- Pierwszy przykład
- Klasy dostosowujemy do własnych potrzeb przez dziedziczenie
- Drugi przykład
- Klasy są atrybutami w modułach
- Klasy mogą przechwytywać operatory Pythona
- Trzeci przykład
- Najprostsza klasa Pythona na świecie
- Klasy od kuchni
- Jeszcze kilka słów o rekordach: klasy kontra słowniki
- Podsumowanie rozdziału
- Sprawdź swoją wiedzę - quiz
- Sprawdź swoją wiedzę - odpowiedzi
- Klasy generują wiele obiektów instancji
- 28. Bardziej realistyczny przykład
- Krok 1. - tworzenie instancji
- Tworzenie konstruktorów
- Testowanie w miarę pracy
- Wykorzystywanie kodu na dwa sposoby
- Krok 2. - dodawanie metod
- Tworzenie kodu metod
- Krok 3. - przeciążanie operatorów
- Udostępnienie sposobów wyświetlania
- Krok 4. - dostosowywanie zachowania za pomocą klas podrzędnych
- Tworzenie klas podrzędnych
- Rozszerzanie metod - niepoprawny sposób
- Rozszerzanie metod - poprawny sposób
- Polimorfizm w akcji
- Dziedziczenie, dostosowanie do własnych potrzeb i...
- Krok 1. - tworzenie instancji
| Kategoria: | Programowanie |
| Zabezpieczenie: |
Watermark
|
| ISBN: | 978-83-289-2943-2 |
| Rozmiar pliku: | 10 MB |