Introducere în domeniul de aplicare în Python

Scopul definește accesibilitatea obiectului piton. Pentru a accesa variabila specifică din cod, domeniul de aplicare trebuie definit deoarece nu poate fi accesat de nicăieri din program. Regiunea de codificare particulară în care variabilele sunt vizibile este cunoscută ca domeniu de aplicare. Variabilele nu sunt vizibile pentru întregul cod vizibilitatea acestuia poate fi restricționată. Scopul verifică ce variabilă poate fi „Văzută”. Scope definește setul de reguli care ne spun cum și unde poate fi căutată o variabilă. Variabila este căutată fie pentru a prelua o valoare, fie pentru a atribui o valoare. Spațiul de nume este identificarea unică a variabilei sau a metodei. Spacepace spune interpretului piton despre numele obiectului și locația de unde încearcă să-l acceseze.

Spațiile de nume sunt căutate pentru rezolvarea domeniului de aplicare în conformitate cu regula LEGB. LEGB înseamnă: L: local, E: închis, G: global, B: încorporat. Secvența LEGB este importantă. Variabila este căutată mai întâi în local, urmată de închisă, apoi globală și în sfârșit încorporată.

Tipuri de domeniu în Python

Să studiem modul de declarare a unei variabile și modul de accesare a sferei sale de aplicare:

1. Domeniul local

Variabilele definite în funcție sunt un domeniu local al variabilei. Aceste variabile sunt definite în corpul funcției. Să înțelegem acest concept cu ajutorul unui exemplu. În acest exemplu 1, am luat o variabilă num. Num = 0 este definit în afara funcției deci nu este o variabilă locală. Conform definiției noastre, variabilele declarate în interiorul corpului funcției sunt o variabilă locală. Aici num = 1 este o variabilă locală care este declarată și tipărită în demo-ul funcției. Dacă rulăm acest cod, ieșirea este dată mai jos.

Exemplul # 1:

Cod:

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

ieşire:

Num este locală pentru funcție. Când utilizăm valoarea variabilă num în funcție înainte de a o declara local, apare o eroare.

Consultați Exemplul 2: Aici, prima instrucțiune de imprimare ridică o eroare piton, deoarece încercăm să o accesăm înainte de alocare.

Exemplul # 2:

Cod:

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

ieşire:

2. Domeniul global

Variabila care poate fi citită de oriunde în program este cunoscută ca un scop global. Aceste variabile pot fi accesate în interiorul și în afara funcției. Când dorim să utilizăm aceeași variabilă în restul programului, o declaram ca fiind globală.

În următorul Exemplu 1, am declarat o variabilă Str care este în afara funcției. Funcția demo se numește și tipărește valoarea variabilei Str. Pentru a utiliza o variabilă globală în interiorul unei funcții nu este necesar să utilizați cuvântul cheie global.

Exemplul # 1:

Cod:

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

ieşire:

În exemplul următor, 2 Am încercat să schimbăm valoarea variabilei globale Str în interiorul funcției, de aceea a ridicat o excepție. Dacă modificăm sau atribuim o nouă valoare variabilei din interiorul funcției, trebuie să scriem global. Dacă doriți să spuneți unui interpret piton că doriți să utilizați o variabilă globală, atunci se utilizează cuvântul cheie „global”. Dacă nu a fost declarat global, Python tratează acea variabilă ca locală dacă este creată sau modificată în interiorul funcției. În această primă linie aruncă o excepție, deoarece python presupune că dorim alocarea ca o variabilă locală datorită alocării la str în cadrul demo-ului funcției ().

Exemplul # 2:

Cod:

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

ieşire:

Când dorim să schimbăm valoarea variabilei globale din interiorul funcției este folosit cuvântul cheie global.

Următorul Exemplu 3 a rezolvat problema întâlnită mai sus.

Exemplul # 3:

Cod:

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

ieşire:

3. Domeniu non-local sau închizător

Variabila nonlocală este variabila definită în funcția cuibărită. Înseamnă că variabila nu poate fi nici în sfera locală, nici în sfera globală. Pentru a crea o variabilă nonlocală se folosește un cuvânt cheie nonlocal. În codul următor, am creat o funcție exterioară și există o funcție cuibărită interior (). În sfera funcției externe () este definită funcția interior (). Dacă schimbăm variabila nonlocală așa cum este definită în funcția interioară (), atunci modificările sunt reflectate și în funcția externă.

Exemplul # 1:

Cod:

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

ieşire:

Dacă dorim doar să folosim valoarea funcției exterioare și nu dorim să facem nicio modificare, atunci comentăm linia (nonlocal a).

Exemplul # 2:

Cod:

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

ieşire:

4. Domeniu încorporat

Dacă o variabilă nu este definită în domeniu local, închis sau global, python o caută în domeniul încorporat. În exemplul următor, 1 din modulul matematic pi este importat și valoarea pi nu este definită în nivel global, local și închis. Apoi, Python caută valoarea pi în domeniul încorporat și tipărește valoarea. Prin urmare, numele care este deja prezent în domeniul încorporat nu trebuie utilizat ca identificator.

Exemplul # 1:

Cod:

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

ieşire:

Concluzie - Domeniul de aplicare în Python

În acest articol, am aflat despre sfera variabilă piton. Am învățat patru tipuri de domeniu - sfera globală, sfera locală, domeniul de aplicare închis și domeniul integrat. De asemenea, am învățat când să folosim cuvinte cheie globale și nonlocale. Sper că ai înțeles acest concept.

Articol recomandat

Acesta este un ghid pentru Scope în Python. Aici discutăm tipurile de domeniu de aplicare în Python și exemplele sale împreună cu implementarea și ieșirea codului. Puteți parcurge și alte articole conexe pentru a afla mai multe -

  1. Tuple în Python cu Tipuri
  2. Prezentare generală a încapsulării în Python
  3. Alternative Python | Top 6
  4. Introducere în moștenire în Python