파이썬 지역변수와 전역변수에 대한 개념입니다.
- 이름공간(name space)
이름공간은 프로그램 전체 범위의 이름을 담는 전역 이름공간,
한정적인 문맥의 이름을 담는 지역 이름공간으로 구별됩니다.
- 지역변수(local variable)
변수는 자신이 생성된 범위(코드블럭) 안에서만 유효합니다.
함수 안에서 만든 변수는 함수 안에서만 살아있다가 함수 코드의 실행이 종료되면 사라집니다.
즉, 해당 함수가 실행될 때만 변수로써 사용할 수 있습니다.
- 전역변수(global variable)
반대로 함수 외부에서 만든 변수는 프로그램이 살아있는 동안
함께 살아있다가 프로그램이 종료되면 같이 소멸됩니다.
이렇게 프로그램 전체를 유효범위로 가지는 변수를 '전역변수'라고 한다.
pi=3.14 # 전역변수 pi
def circle(r):
radius=r # 지역변수 radius
return r*r*pi
circle(10)
1. pi : 프로그램 전체에서 pi라는 변수명으로 사용될 수 있는 전역변수
2. radius : 함수 내에서만 존재하는 , 함수가 끝나면 사용할 수 없는 지역변수
- 함수 밖에서 지역변수 사용
pi=3.14 # 전역변수 pi
def circle(r):
radius=r # 지역변수 radius
return r*r*pi
print(circle(10))
print(radius)
NameError : radius는 정의되지 않았음
-> 지역변수로 circle 함수 내에서만 사용 가능합니다
- 함수 내 전역변수 수정
pi=3.14 # 전역변수 pi
def circle(r):
radius=r # 지역변수 radius
pi=pi*10
return r*r*pi
print(circle(10))
지역변수 pi가 할당되기 전에 사용되었다는 에러가 발생합니다.
전역변수 pi를 사용하기 위해서는 앞에 global을 사용해 함수 내에서 선언합니다.
.pi=3.14 # 전역변수 pi
def circle(r):
radius=r # 지역변수 radius
global pi # 전역변수임을 선언
pi=pi*10
return r*r*pi
print(circle(10))
print(pi) # 전역변수 pi
global pi를 사용해 함수 내에서 사용하는 pi변수가 전역변수임을 선언합니다.
정상적으로 pi 변수가 사용되며, 최종적으로 전역변수의 값도 변경되었습니다.
'프로그래밍 > Python' 카테고리의 다른 글
Python) 아나콘다(Anaconda) 가상환경 삭제하기 (8) | 2020.12.31 |
---|---|
[Python Error] - ImportError: Install xlrd >= 0.9.0 for excel support (2) | 2020.12.31 |
Python-24) Python time , strftime , 날짜 구하기 , 요일 구하기 (8) | 2020.12.26 |
Python-23) 합성곱 : 파이썬 합성곱, 컨볼루션 연산, python Convolution (12) | 2020.12.25 |
Python-21) python read, readline, write, writelines : 파이썬 파일 쓰기, 파일 읽기 , python txt (0) | 2020.12.24 |
Python 현재 디렉토리 확인하기 (3) | 2020.12.24 |
Python-20) python lambda, map, eval (0) | 2020.12.23 |
Python-19) 딕셔너리 기본값 : defaultdict, setdefault (0) | 2020.12.23 |