파이썬의 지역변수, 전역변수에 대해 알아보겠습니다.
- 파이썬에서 변수를 사용할 때, 함수 바깥에서 정의된 변수와 함수내에서 정의된 변수는 다릅니다.
- 함수 바깥에서 정의된 변수를 전역변수, 함수 내에서 정의된 변수를 지역변수라고 합니다.
- 전역변수는 프로그램 전체 어디서든 사용할 수 있고, 지역변수는 해당 함수 내에서만 사용할 수 있습니다.
- 함수 내에서 지역변수를 정의할 때 전역변수의 이름과 동일한 변수명을 사용할 수 있습니다.
- 함수 내에서 지역변수를 정의할 때 다른 함수의 지역변수와 동일한 이름의 변수명을 사용할 수 있습니다.
코드를 통해 지역변수와 전역변수를 알아보겠습니다.
■ 전역변수
- 함수 밖에서 생성된 변수.
- 함수 안,밖 어디서든 사용할 수 있다.
say1 = 'hello' # 전역변수
def sayhello():
print(say1) # 함수 내에서 전역변수 say1 사용 (ok)
sayhello()
[출력결과] hello
■ 지역변수
- 함수 내에서 생성된 변수
- 해당 함수 내에서만 사용할 수 있다.
def saygoodbye():
say2 = 'goodbye' # 지역변수 say2
print(say2) # 함수 내에서 지역변수 say2 사용(ok)
saygoodbye() # 함수 실행 --> say2 출력
print(say2) # 함수 밖에서 지역변수 say2 사용 시도 --> NameError
[출력 결과]
■ 전역변수와 지역변수 우선순위
- 함수 내에서 변수를 사용할 때에는 지역변수에 우선순위가 있다.
- 즉, 함수 내에서 정의한 지역변수와 동일한 이름의 전역변수가 존재한다고 했을 때, 지역변수를 사용한다.
n1 = 1 # 전역변수 n1에 1 할당
n2 = 10
def myFunc1():
n1 = 2 # myFunc1 함수의 지역변수 n1에 2 할당
print(n1)
def myFunc2():
n1 = 3 # myFunc2 함수의 지역변수 n1에 2 할당
print(n1)
print(n1) # 전역변수 n1의 값 출력
myFunc1() # myFunc2 함수의 지역변수 n1의 값 출력
myFunc2() # myFunc3 함수의 지역변수 n1의 값 출력
[ 출력결과 ]
1
2
3
■ 함수 내에서 전역변수의 값 변경하기
- 함수 내에서 전역변수 값을 변경하려면 'global' 키워드로 전역변수를 사용하겠다거 선언한다.
- global을 사용하지 않으면 동일한 이름의 지역변수가 생성되어 사용된다.
n1 = 1
n2 = 10
def myFunc():
global n1 # 전역변수 n1을 사용하겠다고 선언
n1 = 2 # 전역변수 n1에 2 할당
print(n1) # 전역변수 n1 출력
print(n1)
myFunc()
[ 출력결과 ]
2
2
'파이썬' 카테고리의 다른 글
[파이썬] 클로저 (0) | 2022.11.21 |
---|---|
[파이썬] 함수 내에 함수가 정의되어 있는 경우 지역변수 사용 (0) | 2022.11.20 |
[파이썬] 함수, 퍼스트 클래스 함수 (0) | 2022.11.19 |
[파이썬] openpyxl, 셀에 접근하기 (1) | 2022.11.18 |
[파이썬] openpyxl, 엑셀파일/시트 생성하기 (0) | 2022.11.17 |