Питхон глобална кључна реч (са примерима)

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

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

Шта је глобална кључна реч

У Питхону, globalкључна реч вам омогућава да промените променљиву изван тренутног опсега. Користи се за стварање глобалне променљиве и уношење промена у променљиву у локалном контексту.

Правила глобалне кључне речи

Основна правила за globalкључне речи у Питхону су:

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

Употреба глобалне кључне речи

Узмимо пример.

Пример 1: Приступ глобалној променљивој из функције

 c = 1 # global variable def add(): print(c) add()

Када покренемо горњи програм, излаз ће бити:

 1

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

Пример 2: Модификовање глобалне променљиве изнутра у функцији

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Када покренемо горњи програм, излаз приказује грешку:

 УнбоундЛоцалЕррор: референца на локалну променљиву 'ц' пре доделе

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

Решење за ово је употреба globalкључне речи.

Пример 3: Промена глобалне променљиве из функције у функцију помоћу глобалне

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Када покренемо горњи програм, излаз ће бити:

 Унутра додајте (): 2 У главном: 2

У горњем програму дефинишемо ц као глобалну кључну реч унутар add()функције.

Затим, променљиву ц увећавамо за 1, тј c = c + 2. Након тога позивамо add()функцију. На крају, исписујемо глобалну променљиву ц.

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

Глобалне променљиве у Питхон модулима

У Питхону креирамо један модул config.pyза задржавање глобалних променљивих и размену информација између Питхон модула у оквиру истог програма.

Ево како можемо делити глобалне променљиве кроз питхон модуле.

Пример 4: Поделите глобалну променљиву преко Питхон модула

Направите config.pyдатотеку за чување глобалних променљивих

 a = 0 b = "empty"

Направите update.pyдатотеку за промену глобалних променљивих

 import config config.a = 10 config.b = "alphabet"

Направите main.pyдатотеку за тестирање промена вредности

 import config import update print(config.a) print(config.b)

Када покренемо main.pyдатотеку, излаз ће бити

 10 абецеда

У горе, створили смо три датотеке: config.py, update.py, и main.py.

Модул config.pyчува глобалне променљиве а и б. У update.pyдатотеку увозимо config.pyмодул и мењамо вредности а и б. Слично томе, у main.pyдатотеку увозимо оба config.pyи update.pyмодуле. На крају, исписујемо и тестирамо вредности глобалних променљивих било да су промењене или не.

Глобално у угнежђеним функцијама

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

Пример 5: Коришћење глобалне променљиве у угнежђеној функцији

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

Излаз је:

 Пре позива бар: 20 Бар за позивање одмах Након позива бар: 20 к у главном: 25

У горњем програму смо прогласили глобалну променљиву унутар угнежђене функције bar(). Унутар foo()функције, к нема ефекат на глобалну кључну реч.

Пре и после позивања bar(), променљива к поприма вредност локалне променљиве, тј x = 20. Изван foo()функције, променљива к ће добити вредност дефинисану у bar()функцији, тј x = 25. То је зато што смо користили globalкључну реч у к за креирање глобалне променљиве унутар bar()функције (локални опсег).

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

Занимљиви Чланци...