
제가 idx 구문 수정 불가능한 이유를 따로 조사해봤는데 맞는지 궁금합니다.
idx = 1
def func() :
idx += 1
func() 내부의 idx += 1은 idx = idx + 1입니다.
내부에서 '변수명 = ' 을 썼다는 건, 변수를 선언했다는 의미인데,
func() 내부에는 idx를 선언한 적이 없으니, 우측의 idx는 외부의 idx임을 알 수 있습니다.
문제는 좌측의 변수명이 전역 변수와 동일해서,
파이썬의 인터프리터가 구분을 못해서 오류가 발생하는 게 아닌가 싶습니다.
만일
idx = 1
def func() :
idx = 3
이면 전역변수 idx 1개, 함수 내 지역변수 idx 1개가 개별적으로 존재하니, 에러가 발생하지 않습니다.
제가 이해한 바가 맞나요?
