Python에서 변수 범위 작업의 뉘앙스
지역 변수와 전역 변수 작업의 중요한 뉘앙스를 살펴보겠습니다.
전역 변수 num이 있다고 가정해 봅시다.
전역 num을 콘솔에 출력하는 함수 func를
만들어 보겠습니다:
num = 1
def func():
print(num)
func() # 1을 출력합니다
이제 함수 print 아래 줄에 지역 num을
선언해 보겠습니다. 코드 실행 후 콘솔에 오류가
출력됩니다. 이는 Python이 함수 내부에서
num를 아직 선언되지 않은 지역 변수로만
인식하기 때문에 발생합니다:
num = 1
def func():
print(num) # 오류를 출력합니다
num = 2
이제 변수 num의 값이 2만큼 증가하도록
함수 내부의 코드를 다시 작성해 보겠습니다:
num = 1
def func():
num += 2 # 오류를 출력합니다
오류는 표현식 num += 2가
다음과 같은 기록을 나타내기 때문에 발생합니다:
num = num + 2
그러나 더해지는 지역 변수 자체가 아직 선언되지 않았습니다. 따라서 존재하지 않는 값에 숫자를 더할 수 없기 때문에 Python이 오류를 출력합니다.
다음 코드를 실행한 결과는 무엇일까요:
tst = '12'
def func():
tst = 12
return tst
print(tst)
다음 코드를 실행한 결과는 무엇일까요:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
다음 코드를 실행한 결과는 무엇일까요:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)