Глобальні змінні 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>
Різниця ч/б локальна змінна проти. Глобальні змінні
Основа порівняння | Глобальна змінна | Локальна змінна |
Визначення | оголошено поза функціями | оголошений у функціях |
Час життя | Вони створюються, коли починається виконання програми, і втрачаються, коли програма завершується | Вони створюються, коли функція починає своє виконання, і втрачаються, коли функція завершується |
Обмін даними | Пропонує обмін даними | Він не пропонує обмін даними |
Область застосування | Може бути доступ до всього коду | Можна отримати доступ лише всередині функції |
Необхідні параметри | передача параметрів не потрібна | необхідна передача параметрів |
Зберігання | Фіксоване розташування, вибране компілятором | Вони зберігаються на стеці |
Значення | Як тільки значення змінюється, це відображається в коді | змінена змінна не впливає на інші функції програми |