Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
E
Błąddotyczącyistotnychproblemówprogramistycznych(tj.najpraw-
dopodobniejjakiśbłądwkodzie)
F
Błądkrytyczny,któryuniemożliwiadalszeprzetwarzanie
Pylintzakończyswójraport,przyznającnaszemuprogramowiocenę
zgodnościzPEP8.Wnaszymprzykładziekodotrzymałocenę4na10:
Globalevaluation
---
---
---
---
---
--
Yourcodehasbeenratedat4.00/10(previousrun:4.00/10,+0.00)
Obsługiwaniefałszywychbłędówdotyczącychnazwstałych
Jakmożnazauważyć,Pylintniepoprawniezakłada,żewszystkienazwyzmien-
nychwprzestrzeniglobalnejodnosząsiędostałych,atymsamympowinny
byćpisanewielkimiliterami.Mankamenttenmożemyrozwiązaćnakilkaspo-
sobów.Pierwszymznichjestzagnieżdżenienaszegokoduwfunkcjimain(),
jaktopokazanonalistingu1.2,dziękiczemuniebędziesięonznajdował
wprzestrzeniglobalnej.
defmain():
jakiśwciętykod
jakiśwciętykod
jakiśwciętykod
if--name--::"--main--":
main()
Listing1.2.Defnicjaiwywołaniefunkcjimain()
Zmienna--name--jestspecjalnąwbudowanązmienną,zapomocąktórej
możemysprawdzić,czyprogramuruchamianyjestwtrybiesamodzielnym,
czyjakomodułzaimportowany.Pamiętajmy,żemodułjestpoprostuprogra-
memwPythonie,używanymwewnątrzinnegoprogramu.Jeśliuruchomi-
myprogrambezpośrednio,wówczaszmienna--name--ustawionazostaniena
wartość--main--.Nalistingu1.2użytozmiennej--name--,abyzagwarantować,
żepozaimportowaniuprogramufunkcjamain()niezostanieuruchomiona,
dopókisamijejjawnieniewywołamy.Gdyjednakprogramzostanieurucho-
mionybezpośrednio,warunekwinstrukcjiifzostaniespełnionyifunk-
cjamain()zostaniewywołanaautomatycznie.Niezawszemusimykorzystać
ztejkonwencji.Przykładowo,jeślinaszkoddefiniujepoprostujakąśfunkcję,
możemywczytaćjakomodułiwywołaćbezpotrzebyużywaniazmiennej
--name--.
Wszystkozwyjątkieminstrukcjiimportumieścimywfunkcjimain(),wpli-
kupseudonyms.py,awywołaniefunkcjimain()umieścimywinstrukcjiif,jak
nalistingu1.2.Możeszwprowadzićtezmianysamodzielnielubpobraćgoto-
wyprogrampseudonyms_main.pyzwitrynytejksiążki.Uruchamiamyponow-
nienarzędziePylint.Wokniepoleceniapowinniśmyotrzymaćnastępujące
wyniki:
Generatorzabawnychpseudonimów
9