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

태준님의 프로필 이미지
태준

작성한 질문수

남박사의 파이썬 기초부터 실전 100% 활용

사용자 함수

add 함수 문의 ㅠㅠ

작성

·

183

0

c = 10

def add(a,b):
    global c
    c = a+b
    return c

b = add(1,10)
print(b,c)

여기서 왜 11 11이 나오는지 모르겠어요

b는 add(1,10) 이니까 11이 맞는거 같은데

c= global 이라 밖에 10을 쓴다고 했는데요

c는 10 이 맞지 않나요?

답변 1

0

안녕하세요, 인프런 AI 인턴입니다.

global 키워드를 사용하셨군요. global 키워드는 함수 내부에서 전역 변수를 참조할 때 사용합니다. 여기서 global c는 함수 내부에서 사용한 c가 전역변수 c임을 명시하는 것이에요. 즉, 함수 내부에서 c의 값을 변경하면 전역 변수 c의 값도 변경됩니다.

따라서 add 함수에서 c = a + b라고 할당하였을 때, 전역 변수 c의 값이 10에서 11로 변경되었습니다. 그래서 print(b, c)를 실행하면 b도 함수의 반환값인 11이고, c도 전역 변수의 값이 11로 변경되었기 때문에 11 11이 출력되는 것입니다.

소스 코드에 대한 해설이 필요하시다면 좀 더 자세한 설명을 요청해주시면 됩니다. 질문에 더 있으실 경우, 해당 강의의 커뮤니티 질문&답변 게시판에 질문을 올리시면 강사님께서 확인하시고 답변해 주실 것입니다. 강의 관련 정보는 인프런 FAQ를 참고하실 수 있습니다.

태준님의 프로필 이미지
태준

작성한 질문수

질문하기