위키북스 박응용 저 "점프 투 파이썬" 책을 읽고 정리한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

함수선언

def func_name(arg1, arg2) :
	return 반환할거
  • def : 함수 선언 명령어
  • arg : 매개변수
  • 인덴테이션 꼭 해줘야 한다
  • 구현 안하고싶으면 pass를 이용하자
  • 여러개의 값을 ’,’ 로 연결하면 튜플이므로 문제없이 return 할 수 있다.
    • 반환값을 받을때는 a, b, c … = func_name() 이렇게 받아주면 편리하다

튜플로 인자 입력

def func_name(*arg) : # 선언
func_name('a', 123, "abc", ... ) # 호출
arg[1] == 123 # 접근
  • * 는 입력한 인자들을 전부 튜플로 묶어 변수(arg)로 접근할 수 있게 해준다
  • 입력한 인자들은 순서대로 arg[i] 로 접근 가능하다
  • 인자를 몇개를 받을지 모를때 이용해주면 된다

딕셔너리로 인자 입력

def func_name(**kwarg) : # 선언
func_name(ab=12, cd=34, ... ) # 호출
kwarg[ab] == 12 # 접근
  • **는 입력한 인자들을 전부 딕셔너리로 묶어 변수(kwarg)로 접근할 수 있게 해준다
  • =를 기준으로 왼쪽을 문자열로 키에 집어넣고, 오른쪽을 벨류에 집어넣는다.
  • =왼쪽이 문자열 형식으로 키에 할당된다는거에 유의할것
  • 통상적으로 keyword argument의 줄임말인 kwarg 를 변수명으로 쓴다

생략가능한 매개변수

def func_name(arg1, arg2, arg3 = 123):
	# ...
  • arg1arg2는 그냥 변수지만 arg3처럼 선언시에 바로 초깃값을 넣어주면 호출시에 인자를 안넣어줘도 되는 생략가능한 매개변수가 된다
  • 따로 인자를 넣어주지 않는 한 arg3은 123으로 기능한다
  • 123으로 사용하고싶지 않은 경우에는 호출시에 func_name(1, 2, arg3 = 345) 이렇게 해주면 arg3은 345로 기능한다
  • 내장함수 중 이것을 이용하는 예는 sortmin/max 에서의 keyprint에서의 end같은애들이 있다

한줄짜리 함수 = 람다

func_name = lambda 매개변수 : 반환할거
  • 람다는 ’:’ 전후를 이용해 함수객체를 즉석에서 만들어서 반환한다
  • 한줄로 구현할 수 있는 단순한 함수의 경우 사용하면 좋다
  • 변수(func_name)에 넣어서 사용할 수도 있지만 map이나 filter등 함수형 기능을 제공하는 메소드들의 함수객체 매개변수에 인자로 줄 수도 있다