파이썬에서 global 지시문
외부 전역 변수
i가 있다고 가정해 봅시다.
또한 이 변수에 1을 더하는 함수
func가 있습니다:
i = 0
def func():
i += 1 # 오류가 발생합니다
return i
코드를 실행한 후에는 오류가 반환됩니다.
이는 외부 코드에서 선언된 전역
i와 1이 더해지지만
변수 자체가 아직 선언되지 않은
로컬 i 사이에 충돌이 발생하기 때문입니다.
이 문제를 해결하고 함수가 전역 변수와
작업하도록 지정하려면
global 지시문을 사용해야 합니다.
이 지시문은 지정된 현재 코드 블록
전체에 대해 실행되는 선언입니다.
이전 예제를 함수 본문에
global를 선언하여 다시 작성해 보겠습니다:
def func():
global i
i += 1
return i
print(func()) # 1을 출력합니다
다음 코드에서 어떤 프로그래머가 실수를 했습니다:
num = 4
def func():
num *= 2
return num
print(func())
이 코드의 문제점은 무엇인가요? 코드 작성자의 오류를 찾아 수정하세요.
다음 코드에서 어떤 프로그래머가 실수를 했습니다:
num = 10
def func():
num -= 3
return i
print(func())
이 코드의 문제점은 무엇인가요? 코드 작성자의 오류를 찾아 수정하세요.