Johdatus laajuuteen Pythonissa

Soveltamisala määrittelee python-objektin saavutettavuuden. Koodin tiettyyn muuttujaan pääsemiseksi laajuus on määriteltävä, koska sitä ei voida käyttää mistä tahansa ohjelman kohdasta. Erityinen koodausalue, jolla muuttujat ovat näkyvissä, tunnetaan laajuutena. Muuttujat eivät ole näkyvissä koko koodissa. Sen näkyvyyttä voidaan rajoittaa. Soveltamisala tarkistaa, mikä muuttuja voi olla 'Seen'. Soveltamisala määrittelee säännöt, jotka kertovat meille, kuinka ja mistä muuttujaa voidaan etsiä. Muuttujaa etsitään joko arvon noutamiseksi tai arvon määrittämiseksi. Nimitila on muuttujan tai menetelmän yksilöivä tunnistus. Nimiavaruus kertoo python-tulkitsimelle objektin nimen ja sijainnin, josta se yrittää päästä siihen.

Nimitilat etsitään laajuuden tarkkuudeksi LEGB-säännön mukaisesti. LEGB tarkoittaa: L: paikallinen, E: suljettu, G: globaali, B: sisäänrakennettu. LEGB-sekvenssi on tärkeä. Muuttujaa haetaan ensin paikallisesta, jota seuraa suljettu, sitten globaali ja lopulta sisäänrakennettu.

Laajuuden tyypit Pythonissa

Tutkitaan, kuinka muuttuja ilmoitetaan ja miten sen laajuuteen pääsee:

1. Paikallinen soveltamisala

Funktion määrittämät muuttujat ovat muuttujan paikallinen laajuus. Nämä muuttujat on määritelty funktiokappaleessa. Ymmärretään tämä käsite esimerkin avulla. Tässä esimerkissä 1 olemme ottaneet yhden muuttujan numeron. Num = 0 määritetään funktion ulkopuolella, joten se ei ole paikallinen muuttuja. Määritelmämme mukaan funktion rungon sisällä ilmoitetut muuttujat ovat paikalliset muuttujat. Tässä num = 1 on paikallinen muuttuja, joka julistetaan ja tulostetaan toiminnon esittelyyn. Jos suoritamme tämän koodin, lähtö annetaan alla.

Esimerkki 1:

Koodi:

num=0
def demo():
#print(num)
num=1
print("The Number is:", num)
demo()

lähtö:

Num on paikallinen toiminnolle. Kun käytämme num-muuttujan arvoa toiminnossa ennen sen paikallista julistamista, se aiheuttaa virheen.

Katso esimerkki 2: Tässä ensimmäinen tulostuslausunto nostaa python-virheen, kun yritämme käyttää sitä ennen tehtävää.

Esimerkki 2:

Koodi:

num=0
def demo():
print(num) //Raises an Error
num=1
print("The Number is:", num)
demo()

lähtö:

2. Globaali soveltamisala

Muuttuja, joka voidaan lukea mistä tahansa ohjelmasta, tunnetaan maailmanlaajuisena laajuutena. Nämä muuttujat ovat käytettävissä toiminnon sisällä ja ulkopuolella. Kun haluamme käyttää samaa muuttujaa muussa ohjelmassa, julistamme sen globaaliksi.

Seuraavassa esimerkissä 1 olemme julistaneet muuttujan Str, joka on funktion ulkopuolella. Funktionestoa kutsutaan ja se tulostaa muuttujan Str arvon. Jos haluat käyttää globaalia muuttujaa toiminnon sisällä, globaalia avainsanaa ei tarvitse käyttää.

Esimerkki 1:

Koodi:

def demo():
print(Str)
# Global
Str = "You are clever"
demo()

lähtö:

Seuraavassa esimerkissä 2 yritimme muuttaa globaalin muuttujan Str arvoa funktion sisällä, minkä vuoksi se aiheutti poikkeuksen. Jos muokkaamme tai annamme uuden arvon funktion sisällä olevalle muuttujalle, meidän on kirjoitettava globaali. Jos haluat kertoa python-tulkitsijalle, että haluat käyttää globaalia muuttujaa, käytetään avainsanaa “global”. Jos sitä ei ole julistettu globaaliksi, python käsittelee muuttujaa paikallisena, jos se luodaan tai muokataan funktion sisällä. Tässä ensimmäisessä rivissä heitetään poikkeus, koska python olettaa, että haluamme osoituksen paikallisena muuttujana johtuen osoituksesta str-arvoon funktion demossa ().

Esimerkki 2:

Koodi:

def demo():
print(Str)
Str = "You are smart"
print(Str)
# Global scope
Str = "You are Clever"
demo()
print(Str)

lähtö:

Kun haluamme muuttaa globaalin muuttujan arvoa funktion sisällä, käytetään globaalia avainsanaa.

Seuraava esimerkki 3 ratkaisi edellä havaitun ongelman.

Esimerkki 3:

Koodi:

def demo():
global Str
print(Str)
Str = "You are smart"
print(Str)
# Global scope
Str = "You are Clever"
demo()
print(Str)

lähtö:

3. Ei-paikallinen tai sulkeva soveltamisala

Ei-paikallinen muuttuja on muuttuja, joka määritetään sisäkkäisessä toiminnossa. Se tarkoittaa, että muuttuja ei voi olla paikallisessa eikä globaalissa laajuudessa. Ei-paikallisen muuttujan luomiseen käytetään epälokaalia avainsanaa. Seuraavassa koodissa loimme ulkoisen funktion ja sisäkkäinen funktio on (). Ulkoisen () funktion laajuudessa on määritelty sisäinen () toiminto. Jos muutamme ei-paikallista muuttujaa sellaisena kuin se on määritelty sisäisessä () funktiossa, muutokset heijastuvat myös ulkoisessa funktiossa.

Esimerkki 1:

Koodi:

def func_outer():
x = "local"
def func_inner():
nonlocal x
x = "nonlocal"
print("inner:", x)
func_inner()
print("outer:", x)
func_outer()

lähtö:

Jos haluamme vain käyttää ulkoisen funktion arvoa emmekä halua tehdä muutoksia, kommentoi (ei-paikallinen a) -rivi.

Esimerkki 2:

Koodi:

def func_outer():
a = "local"
def func_inner():
#nonlocal a
a = "nonlocal"
print("inner:", a)
func_inner()
print("outer:", a)
func_outer()

lähtö:

4. Sisäänrakennettu soveltamisala

Jos muuttujaa ei ole määritelty paikallisessa, suljetussa tai globaalissa laajuudessa, python etsii sitä sisäänrakennetulla laajuudella. Seuraavassa esimerkissä 1 matemaattisesta moduulista pi tuodaan ja pi: n arvoa ei ole määritelty globaalissa, paikallisessa ja suljetussa muodossa. Python etsii sitten pi-arvon sisäänrakennetussa laajuudessa ja tulostaa arvon. Siksi nimeä, joka on jo sisäisessä laajuudessa, ei pitäisi käyttää tunnisteena.

Esimerkki 1:

Koodi:

# Built-in Scope
from math import pi
# pi = 'Not defined in global pi'
def func_outer():
# pi = 'Not defined in outer pi'
def inner():
# pi = 'not defined in inner pi'
print(pi)
inner()
func_outer()

lähtö:

Päätelmä - soveltamisala Pythonissa

Tässä artikkelissa opimme python-muuttujan laajuudesta. Oppimme neljä laajuustyyppiä - globaali laajuus, paikallinen laajuus, suljettu laajuus ja sisäänrakennettu laajuus. Oppimme myös milloin käyttää globaaleja ja ei-paikallisia avainsanoja. Toivottavasti ymmärsit tämän käsitteen.

Suositeltava artikkeli

Tämä on opas laajuuteen Pythonissa. Tässä keskustellaan Pythonin laajuustyypeistä ja sen esimerkeistä sekä koodin toteutuksesta ja tuotosta. Voit myös käydä läpi muiden aiheeseen liittyvien artikkeleidemme saadaksesi lisätietoja -

  1. Tuples Pythonissa tyypeillä
  2. Katsaus Pythonin kapselointiin
  3. Python-vaihtoehdot | Top 6
  4. Johdatus perintöön Pythonissa