인프런 커뮤니티 질문&답변

최민영님의 프로필 이미지
최민영

작성한 질문수

모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)

Variable scope

Ex3번 주석

작성

·

183

0

# Ex3
c = 40

def foobar():
    # c = c + 10 # UnboundLocalError
    # c = 10
    # c += 100

    print('Ex3 > ', c)

foobar()

 

여기서 c = 10은 값 수정이 아닌 값 할당으로 내부에서 10 그대로 출력하기 때문에 문제없지않나요??

답변 2

0

저도 똑같은거 보고 왔네요. 실행시켜보면 에러 안납니다.

0

좋은사람님의 프로필 이미지
좋은사람
지식공유자

파이썬에서는 전역변수를 지역변수를 쓰고 싶은 경우 global을 붙여줘야 해여~~

 

https://docs.python.org/3/reference/simple_stmts.html#the-global-statement

두번째 주석 #c = 10 이 부분만 주석 풀면 함수 내에서는 에러 없는 구문일거 같은데

저 c 를 함수 내부에서 바뀐 값으로 함수 밖에서도 사용하려면 global 이라고 붙여야 한다고 설명해야지 너무 성의 없는 답변이네요.

최민영님의 프로필 이미지
최민영

작성한 질문수

질문하기