본문 바로가기
IT/파이썬(Python)

파이썬 함수 지역변수와 전역변수

by 깡타의 컴맹인생 2023. 4. 4.
반응형

함수 지역변수와 전역변수

예전에 파이썬 함수의 정의, 구조, 형태에 대해 글을 쓴 적이 있다. 그 연장선으로 이제는 전역변수와 지역변수에 대해 알아보려고 한다. 함수에서 정의한 변수는 어떻게 처리될까?

https://ggangtalife.tistory.com/37

 

파이썬 함수(Function) 정의, 구조, 형태

목차 1. 함수(Function)란? 2. 함수의 구조 3. 다양한 함수의 형태 1. 함수(Function)란? 동일한 작업을 수행하는 코드들의 집합이다. 6가지 변수들을 각각 더하고 그 결과 값을 표출해야 하는 작업이 필

ggangtalife.tistory.com

목차
1. 전역변수
2. 지역변수

1. 전역변수

1
2
3
4
5
6
= 'Hello'
 
def func():
    print(a)
    
func()
cs
Hello

어디서든지 사용할 수 있는 변수다. 함수 밖에서 정의한 것이다. 전역변수를 사용자 지정 함수에서 호출하여 사용할 수 있다. 함수 외부에서 a라는 변수에 'Hello'라는 문자열을 할당시켰다. func 함수에서 print(a)를 이용하여 출력한 결과는 'Hello'다.


2. 지역변수

1
2
3
4
5
def func():
    a = 'Hello'
    print(a)
    
func()
cs
Hello

특정 구문(함수, for문 등) 내부에서 정의한 변수다. 변수를 정의한 범위에서만 사용이 가능하다. 위의 코드는 함수 안에서 변수 a에 대해 정의하고 print 함수를 활용해 출력한 결과다.

1
2
3
4
5
6
def func():
    a = 'Hello'
    print(a)
    
func()
print(a)
cs
Hello
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[1], line 6
      3     print(a)
      5 func()
----> 6 print(a)

NameError: name 'a' is not defined

하지만 함수 내에서 정의한 변수를 함수 외부에서 활용하려고 하는 경우에는 에러가 발생한다. 변수 a가 정의되지 않았다는 에러가 발생한다.

반응형