Treść książki

Przejdź do opcji czytnikaPrzejdź do nawigacjiPrzejdź do informacjiPrzejdź do stopki
Gdycelprzypisaniajestidentyfikatorem,instrukcjaprzypisaniaspecyfikujepowią-
zaniezmiennej.Tonigdyniejestzakazane:kiedytegozażądamy,zostaniewykonane.
Wewszystkichinnychprzypadkachinstrukcjaprzypisaniaoznaczażądaniekierowane
doobiektu,abypowiązałjedenlubwięcejswoichatrybutówlubelementów.obiektmoże
odmówićutworzenialubponownegopowiązanianiektórych(lubwszystkich)atrybutów
lubelementów,zgłaszającwyjątek,gdyspróbujemyniedozwolonegoutworzenialubpo-
nownegowiązania(zobacztakże
--setattr--
wtabeli4-1oraz
--setitem--
wpunkcie
Prosteprzypisaniemożeużywaćwielucelówiznakówrówności(
:
).Naprzykład:
a:b:c:0
wiążezmienne
a
,
b
i
c
zsamąwartością
0
.Zakażdymrazem,gdyinstrukcjajestwyko-
nywana,wyrażenieRHSjestobliczanetylkoraz,bezwzględunato,ilecelówwystępuje
winstrukcji.Każdycel,odlewejdoprawej,zostajepowiązanyzjednymobiektemzwra-
canymprzezwyrażenie,takjakbybyłotokilkaprostychprzypisańwykonanychjedno
podrugim.Celwprostymprzypisaniumożewyliczaćdwalubwięcejprzypisańrozdzie-
lanychprzecinkami,opcjonalnieujętychwnawiasylubnawiasykwadratowe.Naprzykład:
a,b,c:x
Tainstrukcjawymaga,aby
x
byłoiterowalneizawierałodokładnietrzyelementy.Wiąże
onozmienną
a
zpierwszymelementem,
b
zdrugim,a
c
ztrzecim.Tegorodzajuprzypi-
sanienazywanejestprzypisaniemrozpakowującym.WyrażenieRHSmusibyćobiektem
iterowalnymzawierającymdokładnietyleelementów,ilereferencjiznajdujesięwcelu;
wprzeciwnymraziePythonzgłosiwyjątek.Pythonpowiążekażdąreferencjęwcelu
zodpowiednimelementemwwyrażeniuRHS.Wyrażeniarozpakowującegomożnaużyć
naprzykładdozamianyreferencjizesobą:
a,b:b,a
Toprzypisanieponowniewiążenazwę
a
ztym,zczymbyłopowiązane
b
iviceversa.
Dokładniejedenzwielucelówprzypisaniarozpakowującegomożebyćpoprzedzo-
nygwiazdką
*
.Takigwiazdkowy(starred)cel,jeślijestobecny,zostajepowiązanyzlistą
wszystkichelementów(oileistnieją),któreniezostałyprzypisanedoinnychcelów.Dla
przykładu,jeśli
x
jestlistą,towyrażenie:
first,*middle,last:x
matakisamsens(alejestbardziejzwięzłe,przejrzyste,bardziejogólneiszybsze),jakto:
first,middle,last:x[0],x[1:-1],x[-1]
Każdaztychpostaciwymaga,aby
x
miałoconajmniejdwaelementy.Tafunkcjonalność
nazywanajestrozpakowywaniemrozszerzonym.
Zmienneiinnereferencje
|
65