Function
- 코드의 간결성
- 코드의 재사용성
- 코드 수정의 용이성
- 프로그램의 모듈화
내장함수 Vs. 사용자 정의 함수
- 내장함수 : 자주 사용하는 기능을 미리 만들어 내장시킨 함수
- 사용자 정의 함수 : 프로그래머가 필요에 의해 만든 함수
Arbitary Arguments, *args
- arguments의 개수를 모를 때
*
를 붙임 -> tuple로 받음
Arbitary Keyword Arguments, **kwargs
- arguments가 많은데 그 즁 몇 가지 값만 변경하여 전달할 때 사용 ->
dic으로 받음
Variable Scope
- 지역변수
- 함수 내부에서만 유효한 변수
- 함수가 호출되었을 때 생성, 벗어날 때 사라짐
- 전역변수
- 전체에서 유효
- 프로그램이 시작될 때 생성, 끝날 때 사라짐
전역 변수의 값을 함수 안에서 사용하는 방법
1) global
키워드 사용
2) 매개변수 전달
High Order Function (고차함수)
- 함수를 다루는 함수
- 함수를 인자로 받거나 함수를 반환하는 함수
- 고계 함수는
lambda()
함수와 주로 사용
map
, reduce
, filter
맵리듀스(map-reduce) 알고리즘
: 대용량 분산처리 시스템에서 각각의 work를 쪼개서 여러 시스템에 나눠 주고 (map) 다시 그 결과를 합쳐서 (reduce) 반환해주는 알고리즘
reduce()
from functools import reduce
reduce(lambda x, y: x+y, {2: '안녕', 4: '하세요'})
# 6