모든 프로그래밍이 그렇듯이 지역변수와 전역변수가 있다. 지역변수는 코드내부 또는 함수나 메서드의 내부에서만 사용이 가능하고 전역변수는 그 밖에서 사용된다. 지역변수는 구역에서만 사용되지만 전역변수는 구역을 벗어나 전체에서 사용된다. 지역변수를 전역변수로 사용하려면 global 키워드를 사용하면 된다.
지역변수
전역변수를 알기 전에 지역변수부터 살펴본다.
파이썬 지역변수는 함수 내에서만 사용가능하다.
파일단위라면 해당 파일에서만 사용가능하다.
말 그대로 정해진 구역 내에서만 사용가능하고, 구역을 벗어나면 사용이 불가하다.
'''
함수생성
'''
def funcPrnLocVar():
vlStr = "지역변수"
vgStr = "지역변수"
print("지역변수 vlStr - ", vlStr, type(vlStr))
print("지역변수 vgStr - ", vgStr, type(vgStr))
'''
문자열 출력
'''
print( '--------------------------------------------------' )
funcPrnLocVar() #함수실행
print( '--------------------------------------------------' )
위의 코드를 보면 알겠지만 만들어진 함수 내부에 2개의 변수가 있다.
저 2개의 변수는 만들어진 함수 밖에서는 사용을 할 수 없고 접근을 할 수 없다.
단지, 함수 내부에서만 사용가능하다.
전역변수
파이썬 전역변수는 함수 밖에서 사용가능하다.
함수 내부 외부에서 사용가능하며 어디에서든 접근이 가능하다.
물론, 파일단위라면 다른 얘기지만 말이다.
'''
전역변수 생성
'''
vgStr = "전역변수"
'''
함수생성
'''
def funcPrnLocVar():
vlStr = "지역변수"
print("지역변수 vlStr - ", vlStr, type(vlStr))
print("전역변수 vgStr - ", vgStr, type(vgStr))
'''
문자열 출력
'''
print( '--------------------------------------------------' )
print("전역변수 vgStr - ", vgStr, type(vgStr))
funcPrnLocVar() #함수실행
print( '--------------------------------------------------' )
위의 코드를 보면 vgStr 변수는 전역변수로써 함수 내부에서도 접근하여 사용할 수 있다.
아래의 결과를 보면 함수가 실행되는 부분에서 전역변수에 설정된 변수값을 출력하는 것을 볼 수 있다.
같은 변수명 다른 사용
파이썬에서 변수는 같은 이름을 가지고 있다 하더라도 지역변수와 전역변수에 대해 다르게 반응한다.
전역변수로 생성된 것은 마지막에 설정된 값이 그대로 유지되며 지역변수로 같은 이름으로 변수를 생성하고 값을 할당하더라도 서로 구분이 된다.
'''
전역변수 생성
'''
vgStr = "전역변수 vgStr"
'''
함수생성
'''
def funcPrnLocVar():
vlStr = "지역변수 vlStr"
vgStr = "지역변수 vgStr"
print("변수 vlStr - ", vlStr, type(vlStr))
print("변수 vgStr - ", vgStr, type(vgStr))
'''
문자열 출력
'''
print( '--------------------------------------------------' )
print("변수 vgStr - ", vgStr, type(vgStr))
funcPrnLocVar() #함수실행
print( '--------------------------------------------------' )
최초에 생성한 전역변수인 vgStr 이 함수 내부에도 있다.
하지만, 출력을 해보면 이름만 같을 뿐 전혀 다른 결과를 출력한다.
이것은 파이썬은 변수명이 같을 지라도 전역변수와 지역변수를 확실히 구분하고 있음을 알 수 있다.
global 지역변수를 전역변수로 사용하기
이런 특성 때문에 global 키워드를 가지고 있다.
물론 다른 언어들도 global 키워드를 가지고 있으며, 활용방법은 같다.
지역변수를 전역변수로 사용하고자 하면 지역변수 앞에 global 키워드를 붙여주면 된다.
'''
함수생성
'''
def funcPrnLocVar():
vlStr = "지역변수 vlStr"
global vgStr
vgStr = "global 전역변수 vgStr"
print("변수 vlStr - ", vlStr, type(vlStr))
print("변수 vgStr - ", vgStr, type(vgStr))
'''
문자열 출력
'''
print( '--------------------------------------------------' )
funcPrnLocVar() #함수실행
print("변수 vgStr - ", vgStr, type(vgStr))
print( '--------------------------------------------------' )
위의 코드를 보면 전역변수를 만든 부분은 없다.
단지, 지역변수 내에서 전역변수로 사용하기 위한 global 키워드를 사용하였다.
출력문을 보면 vgStr 은 전역변수로써 사용될 수 있는 것을 알 수 있다.
이름이 같을 경우 global 키워드
전역변수와 지역변수의 이름이 같고 지역변수에 global 키워드를 사용할 수 있다.
이 때 전역변수의 값이 바뀔 수 있다.
'''
변수생성
'''
vgStr = "변수 생성"
'''
함수생성
'''
def funcPrnLocVar():
vlStr = "지역변수 vlStr"
global vgStr
vgStr = "global 전역변수 vgStr"
print("변수 vlStr - ", vlStr, type(vlStr))
print("변수 vgStr - ", vgStr, type(vgStr))
'''
문자열 출력
'''
print( '--------------------------------------------------' )
print("변수 vgStr - ", vgStr, type(vgStr))
funcPrnLocVar() #함수실행
print("변수 vgStr - ", vgStr, type(vgStr))
print( '--------------------------------------------------' )
전역변수로 값을 생성하고 값을 할당했다.
vgStr 변수는 전역변수와 지역변수의 이름이 같다.
하지만, global 키워드가 사용된 지역변수는 전역변수처럼 사용되어 영향을 미친다.
그렇기에 값이 바뀐 것을 확인할 수 있다.
'programming > Python' 카테고리의 다른 글
파이썬 숫자형 변수 종류 사용하는 방법 정수형 실수형 복소수형 (0) | 2021.07.26 |
---|---|
파이썬 데이터 타입과 유형 가져오기 type 키워드 사용법 (0) | 2021.07.26 |
파이썬 출력문의 활용 숫자는 더하고 문자는 합치고 화면 출력 (0) | 2021.07.24 |
파이썬 여러 변수에 값 할당하기 (0) | 2021.07.24 |
파이썬 변수명 이름 만들기 규칙을 따르고 뜻은 명확하게 하기 (0) | 2021.07.24 |
댓글