파이썬은 SW가 처음 만들어 내는 것보다 그 이후의 유지 보수가 훨씬 더 중요하다는 것을 깨닫는다면 파이썬의 진정한 가치를 느낄 수 있다.
1. 인터프리터 언어
- 소스코드를 한 줄 한 줄 읽어 들이면서 실행하는 프로그램
2. 스크립트 언어
- 소스 코드를 컴파일하지 않고도 실행할 수 있는 프로그래밍 언어
3. mixin
- 루비에서 믹스인은 다중상속을 지원하지 않기 때문에 사용한다.
- 파이썬에서 믹스인은 하위 클래스에서 공통으로 사용할 기능만 정의한 클래스를 의미한다.
4. 모든 것은 객체다.
- X = 100 일 때, x가 100 레퍼런스를 가리킨다.
- 마치,, y = [1] 일 때, y가 리스트를 가르키는것처럼
5. 일급 객체
- 데이터처럼 사용 가능
- 매개변수에 넘겨줄 수 있다.
- 리턴 값으로 사용 가능
: 파이썬은 함수도 일급 객체임
6. 클로저란?(closure)
- 함수가 종료되어도 자원(함수 안에 있는 변수)을 사용할 수 있는 함수
1) 클로저가 될 3가지 조건
- 내부 함수여야 한다. (내부 함수는 함수 안에 있는 함수를 의미)
- 외부 함수(내부 함수를 가지고 있는 함수)의 변수를 참조해야 한다.
- 외부 함수가 내부 함수를 반환해야 한다.
ex)
def func(name):
def go():
print(name)
return go
func = outer("dexter")
func()
7. 제너레이터
1) 제너레이터 예약어
Yield
2) 제너레이터를 사용하는 이유
- 메모리를 효율적으로 사용하기 위해
리스트 : 데이터 저장에 필요한 메모리를 모두 사용
제너레이터 : 나중에 필요할 때 값을 만들어 사용 (메모리 매우 적게 필요)
3) 사용 예시
list_data = [ d * 3 for d in range(1, 10000)]
generator_data = ( d * 3 for d in range(1, 10000))
8. 데코레이터
- 함수의 앞, 뒤로 부가적인 기능을 넣어 주고 싶을 때 사용.
- Ex) 로깅, 권한
1) 데코레이터 사용방법
- 클로저를 이용해서 생성
- 적용하고 싶은 함수앞에 @데코레이터