Der Gültības jomas un nosaukumu telpas ir centrālas efektīvai programmēšanai Python. Šie koncepti palīdz pārvaldīt mainīgo (variabļu) darbības jomas un to redzamību, kas ir īpaši svarīgi, strādājot ar funkcijām.

Galvenās atziņas

  • Mainīgā darbības joma nosaka, kurā koda daļā var piekļūt šim mainīgajam.
  • Lokālie mainīgie pastāv tikai tajā funkcijā, kurā tie ir definēti.
  • Globālie mainīgie ir redzami visā modulī, ja vien tie netiek pārrakstīti funkcijā.
  • Atslēgvārds global ļauj piekļūt un manipulēt ar globālajiem mainīgajiem funkcijā.
  • Nekorekta globālo mainīgo izmantošana var novest pie kļūdainiem un grūti izsekojamiem kodiem.

Ievads darbības jomās

Tālākajā nodaļā tu uzzināsi, kā darbojas darbības jomas Python valodā. Mēs aplūkosim, kā tiek definēti un izmantoti lokālie un globālie mainīgie, kā arī kā tu vari nodrošināt, ka tavs kods paliek skaidrs un viegli uzturams.

Darbības jomu definīcija

Sāksim ar vienkāršu piemēru. Pieņem, ka tev ir mainīgais Laika apstākļi, kas satur vērtību “Saule”. Tas var izskatīties šādi:

Derīguma zonas un nospiedumi Python valodā

Tagad mēs gribam izveidot funkciju, kas maina laika apstākļus, piemēram, funkciju Lietus:

Šajā funkcijā mēs iestatām mainīgo Laika apstākļi uz “Lietus” un gaidām, ka rezultāts būs redzams galvenajā funkcijā.

Lokālie pret globālajiem mainīgajiem

Ja tu izsauksi funkciju un iestatīsi mainīgo Laika apstākļi funkcijas iekšienē, tu pamanīsi, ka Laika apstākļu vērtība globālajā vidē netiks izmainīta. Tā vietā sākotnējā vērtība “Saule” paliks. Tam ir vienkāršs iemesls: Python apstrādā Laika apstākļu mainīgo funkcijas iekšienē kā lokālo mainīgo.

Derivācijas jomas un nosaukumvietas Pythonā

Tas nozīmē, ka lokālais mainīgais pārklāj globālo mainīgo ar to pašu nosaukumu. Tas skaidri izpaužas kļūdas ziņojumā: "lokālais mainīgais 'Laika apstākļi' netiek izmantots". Tas parāda, ka lokālais mainīgais ir radies funkcijas darbības jomā un nevar piekļūt globālajam mainīgajam.

Globālā mainīgā vērtības maiņa

Lai mainītu globālā mainīgā vērtību funkcijā, tev jāpievieno atslēgvārds global:

Derīguma jomas un nosaukumu telpas Pythonā

Kad tu izmanto atslēgvārdu global, tu paziņo Python, ka vēlies piekļūt jau definētajam globālajam mainīgajam un to mainīt. Kad tu vēlreiz izsauksi funkciju Lietus, Laika apstākļu vērtība patiešām kļūs par “Lietus”. Tas ļauj tev izmantot funkciju, lai pārvaldītu globālos stāvokļus.

Derīgas jomas un nosaukumu telpas Pythonā

Lokālo mainīgo izmantošana

Ir svarīgi atzīt, ka lokālie mainīgie pastāv tikai tajā definīcijas funkcijā. Ja tu, piemēram, definē lokālo mainīgo Vēja stiprums funkcijā Lietus, tas tiks atzīts tikai šajā funkcijā.

Derības jomas un nosaukumu telpas Python valodā

Piekļuve Vēja stiprumam ārpus šīs funkcijas nebūs iespējama. Tā vietā tu saņemsi kļūdas ziņojumu, ka globālajā nosaukumu telpā nav atsauces uz Vēja stiprumu.

Lokālo un globālo mainīgo salīdzinājums

Apskatīsim atšķirības starp lokālajiem un globālajiem mainīgajiem:

  • Globālie mainīgie: Redzami visā modulī. Tos var lasīt un mainīt jebkur, ja tu izmanto atslēgvārdu global funkcijā.
  • Lokālie mainīgie: Redzami tikai tajā funkcijā, kurā tie ir definēti. Tie nav pieejami ārpus šīs funkcijas.
Derīguma jomas un vāka nosaukumi Python valodā

Darbības jomas un labākās prakses

Ir svarīgi būt uzmanīgiem, izmantojot darbības jomas. Pārmērīga atkarība no globālajiem mainīgajiem var novest pie neskaidra un grūti uzturama koda. Laba prakse ir izvairīties no globālajiem mainīgajiem, ja tas nav ārkārtīgi nepieciešams. Tā vietā funkcijām un metodēm vajadzētu izmantot parametrus un atgriezt rezultātus. Tas padara tavu kodu skaidrāku un izsekojamāku.

Papildu apsvērumi ir svarīgi: pārliecinies, ka katra funkcija, kas izmanto datus no globālās vides, ir skaidri nosaukta un labi dokumentēta. Tā minimizē iespējamās kļūdas avotus.

Kopsavilkums - Saprast darbības jomas un nosaukumu telpas Python

Darbības jomu un nosaukumu telpu koncepti ir izšķiroši, lai nodrošinātu tīru programmēšanas praksi Python. Saprot atšķirību starp lokālajiem un globālajiem mainīgajiem un pielieto labākās prakses. Tādējādi tu izveidosi izturīgu un viegli uzturamu kodu.

Bieži uzdoti jautājumi

Kas ir darbības joma Python?Darbības joma Python nosaka, kur mainīgais pastāv kodā un uz to var piekļūt.

Kā es varu izmantot globālo mainīgo funkcijā?Lai piekļūtu globālajam mainīgajam funkcijā, jāizmanto atslēgvārds global.

Kāpēc man vajadzētu izmantot lokālos mainīgos?Lokālie mainīgie novērš konfliktus ar globālajiem mainīgajiem un padara kodu skaidrāku un viegli uzturamu.

Kas notiek, ja es mēģinu piekļūt lokālajam mainīgajam ārpus tās funkcijas?Tu saņemsi kļūdu, jo lokālie mainīgie pastāv tikai funkcijas iekšienē un no ārpuses nav redzami.

Kāpēc globālie mainīgie ir problemātiski?Globālie mainīgie var padarīt kodu mazāk paredzamu un grūti saprotamu, kas samazina uzturēšanas iespējas.