[Python] 파이썬 함수 기초와 개념
함수(Functions)
함수의 구성
코드로 알아보는 함수의 예제
사용을 하고 싶을때는 이와같이 함수명(값)을 넣어주시면 언제든지 함수가 값을 받아와서 알맞은 처리를 한 후에 반환(return)을 해주게 됩니다.
예제로 보는 함수의 사용 예
Scope(변수의 유효범위)
Arguments(인자)
Positional Arguments
예를 들자면 이런 경우를 말할 수 있는데, Sam = name, 26 = age를 통하여 인자의 위치에 기반한 인자 라고 할 수 있으며 이것을 Positional Arguments라고 말합니다.
Keyword Arguments
- 인자의 이름에 기반한 인자
- default인자 문법이 함께 적용: 함수 호출시 해당 인자를 지정하지 않으면 default인자값으로 값이 자동지정
그렇기때문에 Positional Arguments와는 다르게 인자값이 지정되지 않아도 미리 지정해둔 default값으로 출력이 되어 에러가 나지 않습니다.
Packing
*을 써서 여러개의 값을 하나의 변수에 넣는 packing을 사용할 수 있음
tuple, packing/unpacking 정리 바로가기
Unpacking
받을때 *표기하는것이 packing이라면 보낼때 *표기하는 것은 unpacking입니다.
colors는 하나의 리스트로 있지만 unpacking을 해서 따로따로 받아오는 것을 확인할 수 있습니다.
가변인자 / Keyword Arguments
Keyword Arguments는 **로 구분할 수 있습니다.
이와같이 가변인자를 지정하지 않아도 인자를 받을 수 있지만, 가급적 인자로 받을 keyword인자를 모두 지정하는 것이 코드관리에 도움됩니다.
함수 정의시 가변인자 정의가 유용할 경우는?
이런식으로 보면 쉽게 볼수 있습니다.
*args, **kwargs는 부모에게 무엇을 받던 받은 그대로를 부모에게 돌려주는 뜻입니다.
Anonymous Function(익명함수)
- 파이썬에서는 lambda식을 통해 익명함수 생성
- return 문을 쓰지 않아도 마지막 값을 리턴으로 처리
- 대개 인자로 1줄 함수를 지정할 때 사용
- 일반 함수와 인자처리도 동일하게 처리(Positional Arguments, Keyword Arguments)
1급객체
1급함수/클래스
- 함수/클래스를 런타임에 생성 가능
- 함수/클래스를 변수에 할당이 가능
- 함수/클래스를 인자나 리턴값으로 전달 가능
함수안에 함수를 직접 넘겨서 사용할 수 있는 특징을 가지고 있음.
High Order Function(고차함수)
본 게시글은 nomade.kr의 파이썬 강의를 시청하고 정리한 게시글입니다.
함수에 대해서 사용법은 알고있었지만 정리하면서 몰랐던 부분도 알게되고 다시한번 머릿속에 정리하는 계기가 되었습니다.