logo

Глобальні та локальні змінні в Python

Глобальні змінні Python це ті, які не визначені в жодній функції та мають глобальну область, тоді як Python локальні змінні це ті, які визначені всередині функції, і їхня область обмежена лише цією функцією. Іншими словами, ми можемо сказати, що локальні змінні доступні лише всередині функції, у якій вони були ініціалізовані, тоді як глобальні змінні доступні в усій програмі та в кожній функції.

Локальні змінні Python

Локальні змінні в Python – це ті, які ініціалізуються всередині функції та належать лише цій конкретній функції. До нього неможливо отримати доступ поза межами функції. Давайте подивимося, як створити локальну змінну.



Створення локальних змінних у Python

Визначення та доступ до локальних змінних

Python3








def> f():> ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(s)> # Driver code> f()>

>

>

Вихід

I love Geeksforgeeks>

Чи можна локальну змінну використовувати поза функцією?

Якщо ми спробуємо використати цю локальну змінну поза функцією, то давайте подивимося, що станеться.

Python3




def> f():> > ># local variable> >s>=> 'I love Geeksforgeeks'> >print>(>'Inside Function:'>, s)> # Driver code> f()> print>(s)>

>

>

Вихід:

 NameError : name 's' is not defined>

Глобальні змінні Python

Це ті, які визначені поза будь-якою функцією та які доступні в усій програмі, тобто всередині та поза кожною функцією. Давайте подивимося, як створити глобальну змінну Python.

Створіть глобальну змінну в Python

Визначення та доступ до глобальних змінних Python.

Python3




# This function uses global variable s> def> f():> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(>'Outside Function'>, s)>

список c#
>

>

Вихід

Inside Function I love Geeksforgeeks Outside Function I love Geeksforgeeks>

Змінна s визначається як глобальна змінна і використовується як усередині функції, так і поза нею.

Примітка: Оскільки локальних змінних немає, буде використано значення з глобальних, але переконайтеся, що і локальна, і глобальна змінні мають однакові назви.

Чому ми використовуємо локальні та глобальні змінні в Python?

А що, якщо існує змінна Python з таким самим іменем, ініціалізована всередині функції, а також глобально? Тепер виникає питання, чи буде локальна змінна впливати на глобальну змінну чи навпаки, і що станеться, якщо ми змінимо значення змінної всередині функції f()? Чи вплине це також на глобальні компанії? Ми перевіряємо це в такому фрагменті коду:

приклад

Якщо змінну з такою ж назвою також визначено в межах функції, тоді вона друкуватиме лише значення, задане всередині функції, а не глобальне значення.

Python3




# This function has a variable with> # name same as s.> def> f():> >s>=> 'Me too.'> >print>(s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()> print>(s)>

>

>

Вихід

Me too. I love Geeksforgeeks>

А що, якщо ми спробуємо змінити значення глобальної змінної всередині функції? Давайте розглянемо це на прикладі нижче.

Python3




# This function uses global variable s> def> f():> >s>+>=> 'GFG'> >print>(>'Inside Function'>, s)> # Global scope> s>=> 'I love Geeksforgeeks'> f()>

>

>

Вихід:

 UnboundLocalError : local variable 's' referenced before assignment>

Щоб програма вище працювала, нам потрібно використати ключове слово global у Python. Давайте подивимося, що це за глобальне ключове слово.

Глобальне ключове слово

Нам потрібно лише використовувати глобальне ключове слово у функції, якщо ми хочемо виконати призначення або змінити глобальну змінну. global не потрібен для друку та доступу. Python припускає, що нам потрібна локальна змінна через призначення s всередині f(), тому перший оператор видає повідомлення про помилку. Будь-яка змінна, яка змінюється або створюється всередині функції, є локальною, якщо вона не була оголошена як глобальна змінна. Щоб повідомити Python, що ми хочемо використовувати глобальну змінну, нам потрібно використати ключове слово глобальний , як видно з наступного прикладу:

приклад 1: Використання глобального ключового слова Python

Python3




# This function modifies the global variable 's'> def> f():> >global> s> >s>+>=> ' GFG'> >print>(s)> >s>=> 'Look for Geeksforgeeks Python Section'> >print>(s)> # Global Scope> s>=> 'Python is great!'> f()> print>(s)>

>

>

Вихід

Python is great! GFG Look for Geeksforgeeks Python Section Look for Geeksforgeeks Python Section>

Тепер немає ніякої двозначності.

приклад 2: Використання глобальних і локальних змінних Python

Python3




a>=> 1> # Uses global because there is no local 'a'> def> f():> >print>(>'Inside f() : '>, a)> # Variable 'a' is redefined as a local> def> g():> >a>=> 2> >print>(>'Inside g() : '>, a)> # Uses global keyword to modify global 'a'> def> h():> >global> a> >a>=> 3> >print>(>'Inside h() : '>, a)> # Global scope> print>(>'global : '>, a)> f()> print>(>'global : '>, a)> g()> print>(>'global : '>, a)> h()> print>(>'global : '>, a)>

>

>

Вихід

global : 1 Inside f() : 1 global : 1 Inside g() : 2 global : 1 Inside h() : 3 global : 3>

Різниця ч/б локальна змінна проти. Глобальні змінні

Основа порівняння Глобальна змінна Локальна змінна
Визначення оголошено поза функціями оголошений у функціях
Час життя Вони створюються, коли починається виконання програми, і втрачаються, коли програма завершується Вони створюються, коли функція починає своє виконання, і втрачаються, коли функція завершується
Обмін даними Пропонує обмін даними Він не пропонує обмін даними
Область застосування Може бути доступ до всього коду Можна отримати доступ лише всередині функції
Необхідні параметри передача параметрів не потрібна необхідна передача параметрів
Зберігання Фіксоване розташування, вибране компілятором Вони зберігаються на стеці
Значення Як тільки значення змінюється, це відображається в коді змінена змінна не впливає на інші функції програми