제수기 - 제발 수업내용을 기억해라 / 단순수업정리 시리즈
scope
변수를 사용할 수 있는 유효범위를 뜻한다.
- 전역변수 global variable : 특정 블럭 안에서도 사용이 가능
- 지역변수 local variable : 특정 모듈, 특정 함수, 특정 클래스, 특정 인스턴스 안에서만 사용 가능한 변수
- 함수 안에 안 들어가면 전역변수다.
- 함수 블럭 안에서 선언된 변수는 지역변수다.

global (전역변수 수정)

전역/지역변수 구분

스코프 충돌

module
파이썬에서 module이라 함은, .py 파일을 의미한다. 또한 프로그램 내 코드 재사용성을 높이기 위하 모듈 단위로 관리한다.
- 모듈 하위에 선언된 변수, 함수, 클래스 등을 외부에서 import해서 사용이 가능하다.
- __로 시작된 변수는 외부에서 import 시 제외된다. (private 자원)
- ctrl 누르고 마우스로 math를 클릭해보면 어떤 거 쓸 수 있는지 쭉 나온다.

1. 파이썬 표준모듈
dir 빌트인 함수
특정 모듈/객체가 가진 속성/함수를 반환한다
- 이 math 안에 내가 무슨 모듈 쓸 수 있어? 라고 물어보는 것.

- 전달된 인수가 없다면, 현재 스코프에서 사용가능한 속성/함수를 반환

모듈명 확인 (__name__)
- math (import한 경우는 모듈명을 반환)

__name__
속성은 모듈명을 반환하는 속성이 있다. (속성=변수로 생각하면 됨)
1. 현재 모듈이 import해서 사용된다면 모듈명이 들어있다. (my_math)
2. 현재 모듈을 직접 실행한다면, __mian__
값이 담겨있다.

2. 사용자 모듈
import my_math

# from ... import
- 어디까지 import할 것인가에 대한 설정
- from 패키지.모듈 import 속성/함수
- 보통은 모듈.변수명의 형식으로 사용을 권장한다. 이유는 출처가 모호해지고, 이름충돌이 발생하는 걸 방지하기 위해서다.

# import ... as 별칭
- import한 모듈 등의 이름을 별칭으로 변경해 쓸 수 있다.

import문의 위치
- 관례상 py파일의 최상단에 모아서 작성
- 지역 스코프 (함수블럭 안에서만 사용)

namespace
특정변수를 그룹핑하는 개념이다. 이름 충돌을 방지할 수 있다. 예를 들어 동명이인.
- module, function, class, instance는 각각 namespace로 사용할 수 있다.

class - instance
