Uvod v področje uporabe Pythona

Obseg določa dostopnost objekta python. Za dostop do določene spremenljivke v kodi je treba določiti obseg, saj do njega ni mogoče dostopati nikjer v programu. Posebno kodno območje, kjer so vidne spremenljivke, je znano kot področje. Spremenljivke niso vidne celotni kodi, njena vidnost je lahko omejena. Področje uporabe preveri, katera spremenljivka je lahko "Seen". Področje uporabe določa niz pravil, ki nam povedo, kako in kje je mogoče iskati spremenljivko. Iščemo spremenljivko bodisi za pridobivanje vrednosti bodisi za dodelitev vrednosti. Imenski prostor je edinstvena identifikacija spremenljivke ali metode. Namespace pove tolmaču pythona o imenu predmeta in lokaciji, od koder poskuša dostopati do njega.

V Imenskih prostorih se išče ločljivost obsega v skladu s pravilom LEGB. LEGB pomeni: L: lokalno, E: zaprto, G: globalno, B: vgrajeno. Pomembno je zaporedje LEGB. Spremenljivko najprej poiščemo v Local, sledi ji Enclosed, nato globalno in na koncu vgrajeno.

Vrste obsega v Pythonu

Preučimo, kako prijaviti spremenljivko in kako dostopati do njenega področja:

1. Lokalni obseg

Spremenljivke, ki so opredeljene v funkciji, so lokalni obseg spremenljivke. Te spremenljivke so opredeljene v telesu funkcije. Razumejmo ta koncept s pomočjo primera. V tem primeru 1 smo vzeli eno spremenljivo število. Num = 0 je določeno zunaj funkcije, zato ni lokalna spremenljivka. Po naši definiciji so spremenljivke, ki so deklarirane znotraj funkcijskega telesa, lokalna spremenljivka. Tu je num = 1 lokalna spremenljivka, ki je deklarirana in natisnjena znotraj demo funkcije. Če izvajamo to kodo, je izhod naveden spodaj.

1. primer:

Koda:

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

Izhod:

Num je lokalni funkciji. Ko v funkciji uporabimo vrednost spremenljivke num, preden jo prijavimo lokalno, povzroči napako.

Glejte primer 2: Tu prva izjava za tiskanje sproži napako pythona, ko poskušamo dostopati do nje pred dodelitvijo.

Primer # 2:

Koda:

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

Izhod:

2. Globalno področje uporabe

Spremenljivka, ki jo je mogoče prebrati od koder koli v programu, je znana kot globalno področje uporabe. Do teh spremenljivk je mogoče dostopati znotraj in zunaj funkcije. Ko želimo v preostalem programu uporabiti isto spremenljivko, jo razglasimo za globalno.

V naslednjem primeru 1 smo razglasili spremenljivko Str, ki je zunaj funkcije. Pokliče se demo funkcije in natisne vrednost spremenljivke Str. Za uporabo globalne spremenljivke znotraj funkcije ni treba uporabljati ključne besede global.

1. primer:

Koda:

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

Izhod:

V naslednjem primeru 2 smo poskušali spremeniti vrednost globalne spremenljivke Str znotraj funkcije, zato je povzročil izjemo. Če spremenimo ali dodelimo novo vrednost spremenljivki znotraj funkcije, moramo napisati globalno. Če želite tolmaču pythona povedati, da želite uporabiti globalno spremenljivko, se uporabi ključna beseda "global". Če ni bila razglašena za globalno, potem python to spremenljivko obravnava kot lokalno, če je ustvarjena ali spremenjena znotraj funkcije. V tej prvi vrstici je izjema, ker python predpostavlja, da želimo dodelitev kot lokalno spremenljivko zaradi dodelitve str znotraj funkcije demo ().

Primer # 2:

Koda:

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

Izhod:

Ko želimo spremeniti vrednost globalne spremenljivke znotraj funkcije, se uporablja ključna ključna beseda.

Naslednji primer 3 je rešil težavo, ki je naletela zgoraj.

3. primer:

Koda:

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

Izhod:

3. Področje uporabe, ki ni lokalno ali zaprto

Nelokalna spremenljivka je spremenljivka, ki je definirana v ugnezdeni funkciji. Pomeni, da spremenljivka ne more biti ne v lokalnem ne v svetovnem obsegu. Za ustvarjanje nelokalne spremenljivke se uporablja nelokalna ključna beseda. V spodnji kodi smo ustvarili zunanjo funkcijo in tam je ugnezdena funkcija notranja (). V obsegu zunanje () funkcije je določena notranja () funkcija. Če spremenimo nelokalno spremenljivko, kot je definirano v funkciji inner (), se spremembe odražajo tudi v zunanji funkciji.

1. primer:

Koda:

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

Izhod:

Če želimo samo uporabiti vrednost zunanje funkcije in ne želimo nobenih sprememb, potem komentiramo (nelokalno a) vrstico.

Primer # 2:

Koda:

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

Izhod:

4. Vgrajeno področje uporabe

Če spremenljivka ni definirana v lokalnem, zaprtem ali globalnem obsegu, potem python išče to v vgrajenem območju. V naslednjem primeru je uvožen 1 iz matematičnega modula pi in vrednost pi ni definirana v globalnem, lokalnem in zaprtem prostoru. Python nato poišče vrednost pi v vgrajenem območju in natisne vrednost. Zato se ime, ki je že vgrajeno v področje uporabe, ne sme uporabljati kot identifikator.

1. primer:

Koda:

# 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()

Izhod:

Zaključek - Področje uporabe Pythona

V tem članku smo spoznali obseg spremenljivke python. Spoznali smo štiri vrste področja uporabe - globalno področje uporabe, lokalno področje uporabe, priloženo področje uporabe in vgrajeno področje uporabe. Izvedeli smo tudi, kdaj uporabljati globalne in nelokalne ključne besede. Upam, da ste razumeli ta koncept.

Priporočeni članek

To je vodnik za področje uporabe v Pythonu. Tukaj razpravljamo o vrstah obsega v Pythonu in njegovih primerih, skupaj z izvajanjem in izhodom kode. Obiščite lahko tudi druge naše sorodne članke, če želite izvedeti več -

  1. Tuple v Pythonu s vrstami
  2. Pregled enkapsulacije v Pythonu
  3. Python alternative | Top 6
  4. Uvod v dedovanje v Pythonu