문제
변수 유효범위
- python파일간 import사용시 변수를 찾아오지 못하는 문제점 발생
- 기존 자리에 함수 입력시 제대로 불러오지만 동일한 파일을 import해서 사용시 적용이 안되는 오류 발생
시도
- 필요한 변수를 전역변수로 선언
- 전체 코드 중 변수이름이 겹치는게 있는지 확인
- 프로그램 종료 후 재시작..
동작이 되는 경우들도 있었지만 정확하게 해결이 되지 않아서 튜터님께 여쭤보러 가게 됨.
해결
변수 유효범위에 대해 정확한 이해가 필요하며, 다른 함수의 지역변수가 필요한 경우 사용할 수 있는 몇가지 방법을 소개해주심
알게된 점
- b함수에서 a함수의 값을 가져다 쓸 수 있도록 하는 방법중 하나로 지역변수의 유효범위에 대해 이해할 수 있었다.
- 파일 실행 결과 a함수의 return값이 aa = 123이기 때문에 11행의 결과는 123이 출력된다
- 12행 aa = a()에서 a()함수값은 123으로 aa = 123이 선언이 된다.
- 13행 b(aa)에서 매개변수 aa 값으로 123이 들어가기 때문에 b함수 print값은 123이 된다.
지역변수는 해당함수 내에서 선언되는 변수로 그 함수 내에서만 기능하는 변수이다.
다른함수에서 제약없이 사용하기 위해서는 전역변수로 선언이 필요하며, 전역변수로 선언시 최대한 변수조작이 없도록 해야한다.
전역변수를 권장하지 않는 이유
- 코드가 길어질 경우 필요에 따라 함수들을 모아 import해서 호출도 가능하다.
- a함수를 정의한 prac1.py파일
- b함수를 정의한 prac2.py파일
- a함수가 있는 prac1.py파일에서 from prac2 import * 을 선언해 prac2.py파일의 내용을 모두 가져온다
prac1.py파일에서 위와 동일한 입력값을 받았을때 같은 결과값이 나오는걸 확인할 수 있다.
내일 해볼 일
- 지역변수 유효범위를 고려해서 팀 프로젝트 과제 코드 간소화 진행하기