━━━━ ◇ ━━━━
파이썬/코드잇

Python 20. Scope 복습 with 코드잇

728x90
반응형

해당 포스팅은 코드잇 복습을 위한 포스팅입니다.
문제 발생 시 즉시 비공개 처리 하겠습니다.

 


scope(범위)

 

 

print(x)를 붙이면 name ‘x’ is not defind라는 오류가 출력된다.

분명 2번 줄에서 x를 정의 했는데 왜 정의한 적이 없다고 하는 걸까..

그 이유는 my_function 내에서 정의 했기 때문이다. my_function은 로컬변수(함수)인데 그 안에서만 정의된 것이다. 그래서 아래와 같이 로컬 함수 밖에서 글로벌 변수 → x = 2로 정의를 해준다.

 

 

글로벌변수는 2, 로컬변수는 3으로 설정해두었다.  그러면 32가 순서대로 출력된다.

함수에서 변수를 사용하면 항상 로컬변수가 있는지 확인하고 그 다음에 글로벌변수를 확인한다.

 

 

파라미터의 경우

파라미터도 로컬변수로 볼 수 있다.

캡쳐와 같이 square 파라미터에 3을 지정해뒀다. 그러면 x에 정수 3이 올라가고 3square 함수 내에서만 사용가능한 로컬변수인 것이다.

 

 

요약
scope: 변수가 사용 가능한 범위
로컬변수: 변수를 정의한 함수 내에서만 사용 가능
글로벌변수: 모든 곳에서 사용 가능
함수에서 변수를 사용하면, 로컬 변수를 먼저 찾고 나서 글로벌 변수를 찾음
728x90
반응형
COMMENT