반응형
파이썬에서 전역변수를 사용하다가 예상대로 코드가 실행되지 않는다는 것을 발견했다.
전역변수 사용의 잘못된 코드
# 전역 변수
val = False
def change_val():
# 아래 val은 함수내의 '지역변수'다.
val = True
change_val()
print(val)
>> False
val이라는 전역 변수를 change_val 이라는 함수내에서 변경하려고 했으나 변경되지 않고 False 값이 그대로 출력되었다. 이는 C언어의 문법을 기반으로 생각했기 때문에 함수 내에서 변수값이 변경될거라 생각했다. 하지만 파이썬 함수 내에서 전역 변수를 수정하려면 global 키워드를 통해서 전역변수임을 명시해주어야 한다. 그렇지 않으면 그저 함수내에 지역 변수로 인식될 것이다.
전역변수를 사용할래요 - global 키워드
val = False
def change_val():
global val
val = True
change_val()
print(val)
위 코드와 기존 코드의 다른 점은 global 키워드를 통해 전역변수 val을 사용한다고 명시했다.
참고로 아래와 같이 함수 내부에서 전역 변수 선언을 할 수도 있다.
def change_val():
global val
val = True
change_val()
print(val)
반응형
'Python' 카테고리의 다른 글
[python] 함수 정의시 화살표(->)와 콜론(:) 의미 (0) | 2022.05.05 |
---|---|
[python] 리스트 문자열 중 길이가 가장 짧은 문자열 찾기 (1) | 2022.04.18 |
bs4.FeatureNotFound: Couldn't find a tree builder with the features you requested: lxml. 문제 해결 방법 (0) | 2022.02.27 |
[python] pip와 python 버전이 다를때 pip 설치하기 (0) | 2022.02.03 |
[python] selenium에서 Message: unknown error: session deleted because of page crash 에러 발생 (0) | 2022.02.01 |