Galiojimo sritys ir vardų erdvės yra esminiai efektyviam programavimui Python. Šios koncepcijos padeda valdyti kintamųjų diapazoną ir jų matomumą, kas ypač svarbu dirbant su funkcijomis.

Svarbiausios išvados

  • Kintamojo galiojimo sritis nustato, kurioje kodo dalyje galima pasiekti šį kintamąjį.
  • Vietiniai kintamieji egzistuoja tik funkcijoje, kurioje jie buvo apibrėžti.
  • Pasauliniai kintamieji yra matomi visame modulyje, nebent jie yra perrašomi funkcijoje.
  • Raktinis žodis global leidžia pasiekti ir manipuliuoti pasauliniais kintamaisiais funkcijoje.
  • Neteisingas pasaulinių kintamųjų naudojimas gali privesti prie klaidų ir sunkiai suprantamo kodo.

Įvadas į galiojimo sritis

Šiame skyriuje sužinosite, kaip veikia galiojimo sritys Python kalboje. Mes apžvelgsime, kaip apibrėžiami ir naudojami vietiniai bei pasauliniai kintamieji ir kaip užtikrinti, kad jūsų kodas būtų aiškus ir lengvai prižiūrimas.

Galiojimo sričių apibrėžimas

Pradėsime nuo paprasto pavyzdžio. Tarkime, turite kintamąjį Oras, kuris turi vertę "Saulė". Tai galėtų atrodyti taip:

Galiojimo sritys ir vardų erdvės Python'e

Dabar norime sukurti funkciją, kuri pakeis orą, pavyzdžiui, funkciją Lietus:

Šioje funkcijoje mes pakeisime kintamąjį Oras į "Lietus" ir tikimės, kad rezultatas bus matomas pagrindinėje funkcijoje.

Vietiniai ir pasauliniai kintamieji

Jei jūs iškviečiate funkciją ir nustatote kintamąjį Oras šioje funkcijoje, pastebėsite, kad Oras vertė pasaulinėje aplinkoje nebus pakeista. Vietoj to, pirminė vertė "Saulė" išliks. Tam yra paprasta priežastis: Python traktuoja Orą funkcijoje kaip vietinį kintamąjį.

Galiojimo sritys ir vardų erdvės Python'e

Tai reiškia, kad vietinis kintamasis uždengia globalų kintamąjį su tuo pačiu pavadinimu. Tai aiškiai pasireiškia klaidos pranešime: "local variable 'Oras' not used". Tai rodo, kad vietinis kintamasis buvo sukurtas funkcijų galiojimo srityje ir negali pasiekti pasaulinio kintamojo.

Pakeisti pasaulinio kintamojo vertę

Norėdami pakeisti pasaulinio kintamojo vertę funkcijoje, turite naudoti raktinį žodį global:

Galiojimo sritys ir vardų erdvės Python kalboje

Naudodami raktinį žodį global, pranešate Python, kad norite pasiekti ir pakeisti jau apibrėžtą pasaulinį kintamąjį. Kai vėl iškviesite funkciją Lietus, Oras vertė tikrai bus pakeista į "Lietus". Tai leidžia jums naudoti funkciją pasauliniams būsenoms valdyti.

Galiojimo sritys ir vardų erdvės Python programavimo kalboje

Vietinių kintamųjų naudojimas

Svarbu pažymėti, kad vietiniai kintamieji egzistuoja tik savo apibrėžtoje funkcijoje. Jei, pavyzdžiui, apibrėžiate vietinį kintamąjį Vėjo greitis funkcijoje Lietus, jis bus atpažįstamas tik šioje funkcijoje.

Galiojimo sritys ir vardų erdvės Python programavimo kalboje

Prašymas pasiekti Vėjo greitis už šios funkcijos ribų nebus įmanoma. Vietoj to, gausite klaidos pranešimą, kad nėra nuorodos į Vėjo greitis pasaulinėje vardų erdvėje.

Vietinių ir pasaulinių kintamųjų palyginimas

Pakartokime skirtumus tarp vietinių ir pasaulinių kintamųjų:

  • Pasauliniai kintamieji: matomi visame modulyje. Juos galima skaityti ir keisti bet kur, jei naudojate raktinį žodį global funkcijoje.
  • Vietiniai kintamieji: matomi tik funkcijoje, kurioje jie buvo apibrėžti. Jie nėra pasiekiami už šios funkcijos ribų.
Galiojimo sritys ir vardų erdvės Python'e

Galiojimo sritys ir geriausios praktikos

Svarbu būti atsargiems naudojant galiojimo sritis. Pernelyg didelis priklausymas nuo pasaulinių kintamųjų gali sukelti neaiškų ir sunkiai prižiūrimą kodą. Geras stilius yra vengti pasaulinių kintamųjų, nebent tai būtina. Vietoj to funkcijos ir metodai turėtų naudoti parametrus ir grąžinti rezultatus. Tai padaro jūsų kodą aiškesnį ir suprantamesnį.

Papildomos mintys taip pat yra svarbios: užtikrinkite, kad kiekviena funkcija, kuri naudoja duomenis iš pasaulinės aplinkos, būtų aiškiai pavadinta ir gerai dokumentuota. Taip sumažinsite galimų klaidų šaltinius.

Santrauka - suprasti galiojimo sritis ir vardų erdves Python kalboje

Galiojimo sričių ir vardų erdvių koncepcijos yra svarbios švariai programavimo praktikai Python. Supraskite skirtumą tarp vietinių ir pasaulinių kintamųjų ir taikykite geriausias praktikas. Taip sukuriate patikimą ir lengvai prižiūrimą kodo dizainą.

Dažniausiai užduodami klausimai

Kas yra galiojimo sritis Python?Galiojimo sritis Python apibrėžia, kur kintamasis egzistuoja kode ir kur jis gali būti pasiektas.

Kaip galiu naudoti pasaulinį kintamąjį funkcijoje?Norėdami pasiekti pasaulinį kintamąjį funkcijoje, turite naudoti raktinį žodį global.

Kodėl turėčiau naudoti vietinius kintamuosius?Vietiniai kintamieji užkerta kelią konfliktams su pasauliniais kintamaisiais ir padaro kodą aiškesnį ir lengviau prižiūrimą.

Kas nutinka, jei bandysiu pasiekti vietinį kintamąjį už jos funkcijos ribų?Gaunate klaidą, nes vietiniai kintamieji egzistuoja tik funkcijoje ir iš išorės nėra matomi.

Kodėl pasauliniai kintamieji yra problemiški?Pasauliniai kintamieji gali padaryti kodą mažiau nuspėjamą ir sunkiau suprantamą, dėl ko sumažėja jų priežiūra.