a = 10
def prac():
print(a)
print(a)
prac()
전역변수를 이용하여 a를 함수안으로 끌어와 사용할 수 있게 하였다. 하지만 다른 예제를 보자
a = 10
def prac2():
a += 10
print(a)
print(a)
prac2()
이 예제는 local variable 'a' referenced before assignment 에러가 나게 된다.
전의 예제에서는 a를 함수안으로 잘 끌어왔지만 prac2에서는 a+=10의 부분에서 할당이 이루어지고 파이썬이 a를 전역변수에서 가져오지 않고 새로운 지역변수의 선언이라고 알아듣기 때문에 먼저 참조가 되지 않았다는 에러가 발생하는 것이다.
따라서 위의 예제를 오류없이 하고자 하는 방향대로 코드를 작성하려면 global 선언이 필수적이다.
a = 10
def prac2():
global a
a += 10
print(a)
print(a)
prac2()
'파이썬 > 파이썬의 기본' 카테고리의 다른 글
Techit 파이썬 강의 (0) | 2023.04.02 |
---|---|
파이썬 변수 선언 시 주의사항 (0) | 2023.04.01 |
[파이썬] Packing 과 Unpacking (1) | 2023.01.04 |
[파이썬] 파이썬 언더바 개념 (0) | 2023.01.04 |
[파이썬] 문자열 포매팅 방법 (0) | 2023.01.04 |
댓글