Увод у домет Питхона

Опсег дефинише доступност објекта питхон. Да бисте приступили одређеној варијабли у коду, опсег мора бити дефинисан јер се њему не може приступити нигде у програму. Специфично подручје кодирања у којем су видљиве варијабле познато је и као подручје примјене. Варијабле нису видљиве целом коду и његова видљивост може бити ограничена. Обим потврђује која варијабла може бити „Сеен“. Опсег дефинише скуп правила која нам говоре како и где се може тражити променљива. Претражује се променљива или ради проналажења вредности или због додељивања вредности. Именски простор је јединствена идентификација променљиве или методе. Именски простор говори тумачу питхона о имену објекта и локацији одакле покушава да му приступи.

Претражују се у Намеспаце-у за разлучивост обима према ЛЕГБ правилу. ЛЕГБ значи: Л: Локално, Е: Затворено, Г: Глобал, Б: Уграђени. Важна је секвенца ЛЕГБ-а. Најпре се тражи променљива у Лоцал, затим Енцлосед, затим глобална и на крају уграђена.

Врсте опсега у Питхон-у

Проучимо како декларирати променљиву и како приступити њеном обиму:

1. Локални опсег

Варијабле које су дефинисане у функцији су локални опсег променљиве. Ове променљиве су дефинисане у телесу функције. Да разумемо овај концепт уз помоћ примера. У овом примеру 1 узели смо једну променљиву број. Нум = 0 је дефинисан изван функције, тако да није локална варијабла. Према нашој дефиницији, променљиве које су декларисане унутар функционалног тела су локална променљива. Овде је нум = 1 локална променљива која је декларисана и штампана унутар демо функције. Ако покренемо овај код, излаз је дат у наставку.

Пример бр. 1:

Шифра:

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

Излаз:

Нум је локални функцији. Када користимо нум варијабилну вриједност у функцији прије него што је пријавимо локално, појављује се грешка.

Пример 2: Овде прва изјава за штампање ствара грешку питхона док ми покушавамо да јој приступимо пре доделе.

Пример бр. 2:

Шифра:

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

Излаз:

2. Глобални опсег

Варијабла која се може прочитати с било којег мјеста у програму позната је као глобални опсег. Овим варијаблама може се приступити унутар и изван функције. Када желимо да користимо исту променљиву у остатку програма, декларишемо је као глобалну.

У следећем примеру 1, декларисали смо променљиву Стр која је изван функције. Демонстрира се функција функције и она исписује вриједност варијабле Стр. Да бисте користили глобалну променљиву унутар функције, нема потребе да користите кључну реч глобал.

Пример бр. 1:

Шифра:

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

Излаз:

У следећем примеру, 2 Покушали смо да променимо вредност глобалне променљиве Стр унутар функције, због чега је изузео изузетак. Ако изменимо или доделимо нову вредност променљивој унутар функције, морамо написати глобалну. Ако желите да кажете преводитељу питхон-а да желите да користите глобалну променљиву, тада се користи кључна реч „глобал“. Ако није проглашена глобалном, питхон ту варијаблу третира као локалну ако је креирана или модификована унутар функције. У овом првом ретку баца се изузетак јер питхон претпоставља да желимо додељивање као локалну променљиву услед додељивања стр унутар функције демо ().

Пример бр. 2:

Шифра:

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

Излаз:

Када желимо променити вредност глобалне променљиве унутар функције користи се глобална кључна реч.

Следећи пример 3 решио је проблем који је наишао горе.

Пример # 3:

Шифра:

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

Излаз:

3. Нерекални или ограђујући опсег

Нелокална променљива је променљива која је дефинисана у угнијежђеној функцији. То значи да варијабла не може бити ни у локалном ни у глобалном опсегу. За креирање нелокалне променљиве користи се нелокална кључна реч. У следећем коду створили смо спољну функцију и ту је угнијежђена функција унутар (). У опсегу спољне () функције дефинисана је унутрашња () функција. Ако променимо нелокалну променљиву онако како је дефинисано у функцији Интернал (), промене се одражавају и на спољну функцију.

Пример бр. 1:

Шифра:

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

Излаз:

Ако само желимо да користимо вредност спољне функције и не желимо да унесемо било какве измене, тада коментирамо (нелокалну а) линију.

Пример бр. 2:

Шифра:

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

Излаз:

4. Уграђени опсег

Ако променљива није дефинисана у локалном, ограђеном или глобалном опсегу, онда ће је питхон тражити у уграђеном оквиру. У следећем примеру је увежен 1 из математичког модула пи, а вредност пи није дефинисана у глобалном, локалном и приложеном облику. Затим Питхон тражи пи вредност у уграђеном оквиру и штампа вредност. Отуда име које је већ присутно у уграђеном обиму не би требало користити као идентификатор.

Пример бр. 1:

Шифра:

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

Излаз:

Закључак - Обим Питхон-а

У овом чланку смо сазнали о опсегу променљиве питхон-а. Научили смо четири врсте опсега - глобални опсег, локални опсег, затворени опсег и уграђени опсег. Такође смо научили када треба да користимо глобалне и нелокалне кључне речи. Надам се да сте разумели овај концепт.

Препоручени чланак

Ово је водич за опсег у Питхон-у. Овде смо расправљали о врстама опсега у Питхону и његовим примерима, заједно са имплементацијом и излазом кода. Можете и да прођете кроз остале сродне чланке да бисте сазнали више -

  1. Тупле у Питхон-у са типовима
  2. Преглед енкапсулације у Питхон-у
  3. Питхон Алтернативе | Топ 6
  4. Увод у наслеђивање у Питхону

Категорија: