[Python] 전역변수 정리.

이성훈·2021년 9월 13일
0

PYTHON

목록 보기
2/2

파이썬에서는 다른 scope내에서 전역변수값을 바꾸기위해
변수명 = 값 을했으나, 해당 scope 밖에서 전역변수를 확인해보면 전혀 바뀌지않는다.

  • 블럭(scope)내에서 전역변수값을 변경하기위해선 global 키워드를 무조건 사용해야한다.
    신기한점은, 파이썬은 변수의 선언과 동시에 값을할당하는데,
    global 키워드사용시는 변수의 선언과 값할당이 2줄에걸치게된다. 마치 다른 언어처럼..
start = 10
for _ in _ range():
	#start = 20 <= 이러면 지역변수로 선언되서, 해당블럭이 끝나면
        #사라지는 휘발성변수가된다.
	global start # global로 선언
    start = 20       # 값할당
  • 파이썬에서 if for while try 는 scope를 생성하지 않는다.
  • 클래스 내에서는 self. 키워드를 이용하여 클래스내 변수에 접근한다.

관련된 에러로,
"SyntaxWarning: name '변수명' is assigned to before global declaration" 가 있는데,
흔히 if name == ‘main‘: 내에서 전역변수에 global 키워드를 쓰려고할때이다. 아래는 필자가 겪은경우이다.

이외에 자연스럽게 다뤘던 부분인, 전역변수인 리스트객체는 global 없이도 다른 블럭에서 다룰 수 있었는데, 이는 예외 사항인것같다.

profile
I will be a socially developer

0개의 댓글