[ Pobierz całość w formacie PDF ]
.local namespace).Kiedy jestrealizowany dostęp do nazwy wewnątrz funkcji, to najpierw jest przeszukiwana lokalna przestrzeńnazw, a następnie globalna przestrzeń nazw.Wpis w lokalnej przestrzeni nazw  tworzy cieńwpisu o tej samej nazwie w globalnej przestrzeni nazw.Wraz z przypisaniem, nazwa jestdomyślnie powiązana w lokalnej przestrzeni nazw chyba, że instrukcja global jest wcześniejużyta wraz z tą nazwą.Przestrzenie nazw są bardzo wszechstronną cechą Pythona.Pełny opis wykracza poza zakres tegowprowadzenia.Aby uzyskać pełniejszą informację, można sięgnąć do dokumentacji w wersjielektronicznej  Python Reference Manual (podręcznik języka Python).Moduły i pakietyPlik zródłowy Pythona, którego nazwa kończy się rozszerzeniem.py jest modułem.Modułhermetyzuje zmienne, funkcje i klasy w przestrzeni nazw tak, aby nie kolidowały z obiektami otych samych nazwach w innych modułach.Import modułu tworzy przestrzeń nazw dla tegomodułu oraz umożliwia dostęp kwalifikowany poprzez nazwę modułu do funkcji, zmiennych iklas z lokalnej przestrzeni nazw zaimportowanego modułu.Na przykład, jeśli w module o nazwiemodul1.py znajduje się funkcja zrobTo, to można wywołać tę funkcję w następujący sposób:>>> import modul1>>> modul1.zrobTo()Pakiety (ang.packages) są rozszerzeniem koncepcji hermetyzacji systemu plików komputera.Pakiet jest w Pythonie katalogiem w ścieżce wyszukiwania dla importu, który zawiera plik__init__.py (wymagany) oraz inne moduły Pythona lub ewentualnie pakiety pomocnicze(podkatalogi).Dostęp do tych modułów jest kwalifikowany poprzez nazwę pakietu.Dlaprzykładu, jeśli mamy katalog pkg zawierający plik modul2.py, to można go importowaćnastępująco: >>> import pkg.modul2Katalogi z pakietami mogą być zagnieżdżone do dowolnego poziomu.Niektóre moduły ze standardowej dystrybucjiStandardowa dystrybucja Pythona zachwyca bogactwem modułów wielokrotnego użycia.Ototylko niektóre z nich:sys  specyficzne dla systemu wartości i funkcje,os  podstawowe usługi systemu operacyjnego dla wielu platform,string  manipulacja łańcuchami,parser  dostęp do wnętrza analizatora składniowego,dis  deasembler kodu bajtowego,pdb  interakcyjny program uruchomieniowy z wierszem poleceń,profile  moduł do profilowania kodu,urllib, httplib, htmllib, ftplib, telnetlib  usługi dla protokołówInternetu,Tkinter  interfejs Pythona do zestawu narzędzi Tk GUI,copy  do tworzenia głębokich kopii struktury danych.Klasy i obiektyDefinicja klasy jest instrukcją złożoną, która tworzy obiekt klasy definiowany przez użytkownikaoraz wiąże go z nazwą klasy w bieżącej lokalnej przestrzeni nazw:class nazwa_Klasy [ ( klasabazowa1 [ , klasabazowa2 ].) ]:zestawKażda klasa ma swoją własną lokalną przestrzeń nazw, podobnie jak każdy wytworzony obiekt ztej klasy. Wywołanie klasy (używając składni nazwa_Klasy) tworzy obiekt (kopię klasy).Zmienneokreślone na najwyższym poziomie definicji klasy są zwane  atrybutami klasy.Są onewspółużytkowane przez wszystkie kopie.Pojedyncze obiekty (kopie klasy) mogą tworzyć swojewłasne  atrybuty kopii oraz zastępować atrybuty klasy swoimi atrybutami o tej samej nazwie. Funkcje określone na najwyższym poziomie definicji klasy są zwane  metodami.Klasa możedziedziczyć atrybuty i metody z jednej lub więcej klas bazowych (wielokrotne dziedziczenie).W najprostszej postaci, pusta klasa może być uważana za odpowiednik struktury struct w C:>>> class Struct:.pass.>>> papuga = Struct()>>> papuga.odmiana = "Niebieska Norweska">>> papuga.stan = "martwa"Jednakże pełny zakres możliwości klas jest realizowany, kiedy łączą one atrybuty danych zatrybutami funkcji (metody), czyli informację z zachowaniem.Jest to kwintesencjaprogramowania obiektowo zorientowanego.Wiele dobrych (i nie tak dobrych) książek zostałonapisanych na ten temat  z uwagi na szczupłość miejsca nie zostanie tu podjęta próbaomówienia tego ważnego tematu.Przedstawiony zostanie pokrótce tylko sposób użycia imechanizm działania klas i obiektów w Pythonie.MetodyMetoda jest funkcją powiązaną z obiektem, funkcją zdefiniowaną w obrębie przestrzeni nazwklasy:>>> class KlasaA:.def metoda(self):.return "Oto KlasaA.metoda".def inna(self):.return "Oto KlasaA.inna".>>> obiekt = KlasaA()>>> obiekt.metoda()'Oto KlasaA.metoda'>>> obiekt.inna()'Oto KlasaA.inna'>>>Kiedy metoda jest wywołana przy użyciu składni obiekt.metoda, to wtedy Pythonautomatycznie przekształca to na wywołanie nazwa_Klasy.metoda(obiekt). selfKażdy wykaz parametrów metody rozpoczyna się od self.Kiedy jest wywołana powiązana zobiektem metoda jest to równocześnie nazwa tego obiektu,.Nazwa self to zaledwie konwencja,choć jest ona niemalże uniwersalna.Można by równie dobrze używać me, I, this (coś dlazagorzałych zwolenników C++) lub jakiejkolwiek innej nazwy w miejsce self, pod warunkiem,że zachowa się konsekwentną notację w obrębie każdej metody.DziedziczenieKlasy mogą dziedziczyć atrybuty i metody z innych klas:>>> class Podklasa(KlasaA):.def inna(self):.return "Podklasa.inna".>>> s = Podklasa()>>> s.metoda()'Oto KlasaA.metoda'>>> s.inna()'Podklasa [ Pobierz całość w formacie PDF ]
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • odbijak.htw.pl