2018 프로그래밍 시작하기추상화 심화global 변수와 local 변수 정리

Q

global 변수와 local 변수가 동시에 쓰였을 때

조회 2580

좋아요 3

2017년 8월 30일

댓글 4

2017년 8월 30일
검색해보니 파이썬에서 변수의 scope는 선언된 위치에 따라 정해지는데 function안에서 할당된 변수는 자동적으로 local변수 취급을 한다고 합니다. 즉 a = 'local'이라는 부분때문에 a는 로컬 변수로 취급되어 print(a)에서 로컬변수로서의 a의 값을 불러오려 하는데 이때 아직 a가 할당되기 이전이라 오류가 뜬다고 합니다. 실제로 a = 'local'을 print(a)보다 먼저 써주시면 오류는 사라지더라고요. 영어실력이 부족해서 정확하진 않지만 제가 이해한바로는 이렇습니다.
2017년 8월 30일
미묘한 부분이군요. 저도 좀 더 찾아봐야겠습니다. 감사합니다!
2017년 8월 30일
음.. 순서가
def에서 print(a) 실행 -> print함수 내부에서 호출된 a가 local인지 global인지 판별 -> 할당된 local a값 호출 -> 결과값 리턴 후 종료인데,
a값이 print함수 종료 후 선언되도록 코드가 짜여있으니 a값을 못불러오는게 아닐까요.
2017년 8월 30일
함수안에서 변수가 정의되면 일단 함수 전체 코드 안에서 변수가 로컬인지 글로벌인지 판단을 하고 실행하는 걸지도 모르겠습니다 밥먹고 찾아봐야겠습니다.
A
2개의 답변이 있어요

(주) 코드잇

대표강영훈

개인정보보호책임자강영훈

이메일support@codeit.kr

사업자 번호313-86-00797

통신판매업제 2019-서울중구-1034 호

주소서울특별시 중구 청계천로 100 시그니쳐타워 동관 10층 코드잇