1 minute read

Python 함수의 신비함

스크린샷 2017-04-08 오후 9.48.34

파이썬으로 배우는 실전 알고리즘 p.47 예제

클로저, 내부함수.

함수의 반환 값으로 함수가 나와서 이를 이용할 수 있다.

스크린샷 2017-04-08 오후 9.58.39.png

값 여러개를 튜플로 반환 할 수도 있다.

if 리턴값 개수 == 할당 받을 변수 개수 : 각 변수마다 리턴값 할당됨

else if 변수 개수 == 1: 변수에 튜플로 묶인 값이 할당됨

else: 에러 # 리턴 개수 ≠ 변수 개수

스크린샷 2017-04-08 오후 10.16.41

가변 인수도 받을 수 있다.

* 이면 그냥 인수, **이면 이름 있는 인수로 인식된다.

그리고 특성상 매개 변수 가장 뒤에 써야 한다. 특히 **는 가장 뒤에

x = 1, 2가 x=1 하고 2가 아니라 x=(1,2) 니까

스크린샷 2017-04-08 오후 10.17.06.png

튜플이나 리스트 값 앞에 *을 붙여서 Unpack할 수도 있다.

(1, 2)와** *{‘a’ = 1, ‘b’ = 2}**가 매개변수 1과 2로 인식한다.

*안붙이고 튜플 넘기면 인수 더 달라고 에러 뜸

>>> a = [1,2,3,4,5,6]
>>> list(map(lambda x: x+2, a))
[3, 4, 5, 6, 7, 8]

람다를 이용해 map 함수를 적용할 수도 있다.
파이썬 버전 2대는 list()를 안써도 되는 것 같은데
3대는 map함수 적용한 값을 그대로 건내주는지 list()를 안씌우면 포인터값(?)이 반환된다.

그와중에 캡쳐하기 귀찮아서 html 문법 공부함 style=”특성:값;”