Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
wymaga,abynieużywaćtychwywołań,gdynadmiarowe,comamiejscewniemal
każdymprzypadku:zawszepiszemy
ifx:
,nigdynieużywamypostaci
ifbool(x):
,
ifx
isTrue:
,
ifx::True:
ani
ifbool(x)::True:
.Niemniejjednakmożemyużyć
bool(x)
dozliczenialiczbyprawdziwychelementówwsekwencji.Naprzykład:
lefcount-trues(seq):
returnsum(bool(x)forxinseq)
Wtymprzykładziewywołanie
bool
gwarantuje,żekażdyelement
sekw
zostaniepoliczony
jako
0
(jeślijestfałszem)albo
1
(jeślijestprawdą),zatem
count-trues
jestbardziejogólne,
niżmogłobybyć
sum(sekw)
.
Ilekroćmówimyn
wyrażenie
jestprawdą”
,mamynamyśli,że
bool(wyrażenie)
zwró-
ci
True
.Jakwspomnieliśmy,jesttoczęstookreślanejakon
wyrażenie
jesttruthy”(druga
możliwośćton
wyrażenie
jestfalsy”).
Zmienneiinnereferencje
ProgramwPythonieodwołujesiędowartościdanychpoprzezreferencje(inaczejnazywa-
neodwołaniami).Referencjatonnazwa”odwołującasiędowartości(obiektu).Referencje
mająpostaćzmiennych,atrybutówielementów.WPythoniezmiennalubinnareferencja
niemawłasnego(wewnętrznego)typu.obiekt,zktórymreferencjajestzwiązanawda-
nymmomencie,zawszematyp,aledanareferencjamożebyćwiązanazobiektamiróżnych
typówpodczaswykonywaniaprogramu.
Zmienne
Pythonniezawierapojęciandeklaracjizmiennych”
.Istnieniezmiennejrozpoczynasię
instrukcją,którawiążezmienną(innymisłowy,ustanawianazwęprzechowującąreferen-
cjędopewnegoobiektu).Możemyteżodwiązaćzmienną,resetującnazwę,przezcojuż
nieutrzymujereferencji.Instrukcjeprzypisaniatotypowysposóbwiązaniazmiennych
iinnychreferencji.Instrukcja
lel
odwiązujereferencjęzmiennej,aleużywaniejejjest
bardzorzadkie.
Wiązaniereferencji,którajestjużpowiązana,bywanazywaneponownymwiązaniem
(rebinding).Ilekroćmówimyowiązaniu,niejawniewłączamyteżponownewiązanie(zwy-
jątkiemmiejsc,wktórychjawniejewykluczymy).Ponownewiązanielubodwiązanie
referencjiniemażadnegowpływunaobiekt,zktórymreferencjabyłapowiązana,zwy-
jątkiemtego,żeobiektznika,kiedynicsiędoniegonieodwołuje.Czyszczenieobiektów,
doktórychniemażadnychreferencji,nosinazwęsprzątaniaśmieci(garbagecollection).
Zmiennąmożemynazwaćprzyużyciudowolnegopoprawnegoidentyfikatorazwyjąt-
kiemtychtrzydziestukilku,którezarezerwowanejakosłowakluczowePythona(patrz
nSłowakluczowe”nastronie45).Zmiennamożebyćglobalnalublokalna.Globalna
zmiennajestatrybutemobiektumodułu(patrzrozdział7).Lokalnazmiennaegzystuje
wlokalnejprzestrzeninazwfunkcji(patrznPrzestrzenienazw”nastronie120).
62
|
Rozdział3:JęzykPython