hanovator.log
로그인
hanovator.log
로그인
5강 함수
Han Hanju
·
2022년 3월 16일
팔로우
0
도서
파이썬실천기술
0
5.1 함수 - 관련된 처리를 모음
인수로ㅓ 데이터를 받아 처리하고, 그 결과를 반환값으로 호출자에게 돌려줌
파이썬에서 모든 데이터는 객체
함수또한 객체
인수로 전달, 변수에 대입가능
1. 함수 정의와 실행
2. 인수를 받는 함수
인수가 없이 호출하면 에러
인수 기본값 설정
3. 함수는 객체
함수를 정의하면 함수명의 이름과 같은 함수객체가 만들어진다
변수에 대입가능
다른 함수의 인수나 반환값으로 사용 가능
4. 함수의 반환값
return문을 사용해 반환값 지정
1) return이 없을때 반환값
None값을 전달
5. 함수의 다양한 인수
가인수: 함수를 정의할 때 사용하는 인수
실인수: 함수를 호출할 때 전달하는 인수
1) 위치인수 - 가인수 이름을 지정하지 않고 실인수를 전달함
실인수의 순서가 가인수와 같아야한다.
순서나 수가 같지 않으면 TypeError발생
2) 키워드 인수 - 가인수 이름을 지정해 실인수를 전달함
호출 순서는 영향을 주지 않는다
존재하지 않는 가인수 이름을 지정하면 TypeError
3) 기본값을 가진 인수 - 호출시 실인수를 생략할 수 있는 인수
실인수가 전달되지 않았을때 기본값을 사용
기본값이 있는 가인수는 없는 가인수보다 뒤에 위치
이미 사용하고있는 함수에 기본값을 가진 인수를 추가해도 기존호출코드 수정 필요없음
4) 기본값의 함정
함수가 정의될때 한번 값이 구해지고, 호출할때마다 미리 계산된 값을 사용
5) 길이가 변하는 인수
가인수 이름에 *를 붙여사용
임이의 이름을 이용할 수 있지만 *args자주 사용
가인수에 할당되지 않은 위치 인수를 튜플로 받는다.
위치: 다른 위치 인수의 가장 마지막, 기본값을 가지는 인수보다는 앞
6) 길이가 변하는 키워드 인수
가인수 이름에 **를 붙여 정의
**kwargs 주로 사용
딕셔너리로 받음
위치: 가장 마지막
어떤 인수도 유연하게 받음
7) 키워드만 인수로 가짐 - 호출시 가인수 이름을 반드시 전달해야하는 인수
반드시 가인수 이름을 지정
인수의 의미를 이용자에게 전달 및 가독성 높이는 효과
가인수 앞에 *를 지정
8) 위치만 인수로 가짐 - 호출시 가인수 이름을 지정할 수 없는 인수
일부 내장함수
abs(), pow()
3.8부터 사용자가 정의하는 함수에서도 이용
위치만 인수로 할 가인수를 나열한 뒤 /를 지정
6. 인수 리스트 언팩 - 리스트나 딕셔너리에 저장된 값을 인수로 전달
연산자를 이용해 리스트나 딕셔너리로부터 인수를 전개하는 기능
리스트나 튜플에 저장되어있는 값을 함수의 위치 인수로 전달
**연사자를 이용하여 딕셔너리에 저장된 값을 키워드 인수로 전달
7. 함수의 독스트링
주석과 같음
해당함수의 개요, 인수나 반환값의 설명이나 타입등 기술
5.2 lambda 식 - 이름이 없는 함수 작성
1. lambda 식 정의와 실행
반드시 1행으로 기술
2. lambda 식을 사용할 위치
함수를 인수로 받는 함수를 호출할때
filter(), sorted()
5.3 타입힌트
애너테이션을 이용해 타입힌트 추가
함수의 인수와 반환값에 타입정보를 붙임
실행시 타입체크를 수행하지 않는다.
1. 타입 정보를 부여함으로써 얻을 수 있는 장점
유지보수성이 높아진다.
타입정보를 황용한 코드자동생성에 활용
2. 타입 정보 부여
부여된 타입정보는 객체의 속성
annotations
에 저장됨
3. 변수에 대한 타입정보 부여
4. 타입 힌트 활용사례 - 정적 분석 도구 이용
정적 분석도구 mypy를 이용해 체크 가능
Han Hanju
Data Analytics Engineer
팔로우
이전 포스트
4장 데이터구조
다음 포스트
7강 - 모듈, 패키지, 이름공간, 스코프
0개의 댓글
댓글 작성