[짤막] global

Jeong SeongYun·2022년 8월 30일
0

짤막

목록 보기
15/16
post-thumbnail

가끔 파이썬 구현 코드를 보다보면 함수 내에 global 이라고 선언해놓고 작성해둔 코드를 간간히 볼 수 있습니다. 뭘까요?

필요한 상황

철수는 원래 선언되어 있던 값 a에 parameter로 받는 값을 더해주는 함수를 만들고 싶습니다. 그래서 아래와 같은 함수를 작성했다고 합시다.

def adding(num) :
    a += num
    return a

adding(3)

output
UnboundLocalError: local variable 'a' referenced before assignment

오잉? 보시면 local 변수인 a가 할당되기 전에 참조되었다고 합니다.
왜 할당하지도 않은 값을 넣었냐는 말이죠.

그래서 철수는 함수 바깥에 a = 0 으로 정의하고 다시 실행 시켜봤습니다.

a = 0

def adding(num) :
    a += num
    return a

adding(3)

output
UnboundLocalError: local variable 'a' referenced before assignment

똑같은 에러가 뜨는 것을 보고 철수는 머리를 쥐어싸매게 됩니다.

global

파이썬에선 외부에서 정의된 값을 함수 내부에서 사용하고 싶을 때 global 이라는 기능을 이용합니다.

함수 내부에서 함수 외부에 있는 변수를 사용하고자 할 때 global {변수} 를 넣어주시면 됩니다. 예시로 보는 게 제일 빠르겠죠?

a = 0 

def adding(num) :
    global a
    a += num
    return a

adding(3)

output
3

이제 원하는 결과가 정상적으로 잘 나왔음을 확인했습니다.

함수를 작성하다보면 위에처럼 local variable 뭐시깽~ 이렇게 나올 때가 있습니다.

그럼 일단 변수 명이 겹쳐있나 한번 잘 확인해보시고 변수명이 잘 되어있음에도 그렇다면 한번 함수 바로 아래에다 global 을 한번 사용해보시는 것이 좋겠습니다.

profile
물어보면 대답해줄 수 있는 데이터쟁이

0개의 댓글