반응형

 


함수의 정의와 호출


함수: 여러 개의 statement를 하나로 묶은 단위
* 함수는 반복적 수행이 가능하며, 코드를 논리적으로 이해하는데 도움을 줌. 또한 코드의 일정
 부분을 별도의 논리적 개념으로 독립화 가능


간단한 함수의 정의 → def: 함수 정의 시 사용하는 키워드


함수 객체와 함수 호출
* 함수 이름 자체는 함수 객체의 레퍼런스를 지님
* 함수 이름에 저장된 레퍼런스를 다른 변수에 할당하여 그 변수를 이용한 함수 호출 가능
* 함수 몸체에는 최소한 한 개 이상의 statement가 존재해야 함 (없으면 pass 사용)


함수 인수값 전달 방법
* 기본: 값에 의한 호출(call-by-value) → 실제로는 참조에 의한 호출(call-by-reference)
* 함수 인자에 변경불가능 객체인 숫자값, 문자열, 튜플을 전달하면 의미 없음
* 함수 인자에 변경 가능한 객체인 리스트와 사전을 전달하면 올바른 전달법 및 활용법


- 반환문 : 인수 없이 return문 사용하면 None 객체 전달


- 함수 인자에 대한 동적인 자료형 결정 : 함수 인자는 함수가 호출되는 순간 해당 인자에 전달되는
 객체에 따라 타입 결정

 

함수 인수 처리


기본 인수 값 : 함수를 호출할 때 인수를 넘겨주지 않아도 인수가 기본적으로 가지는 값
* incr(a, step=1)에서 step=1과 같은 형태를 가짐
* 함수 정의를 할 때 일반적인 인수 앞에 기본 인수 값 올 수 없으나 여러 개는 정의 가능


키워드 인수 : 인수 값 전달 시 인수 이름과 함께 값을 전달하는 방식
* 함수 호출 시 키워드 인수는 마지막에 위치해야 함


가변 인수 리스트 : 함수 정의 시 일반적인 인수 선언 뒤에 *var 형식의 인수로 가변 인수 선언
* var 에는 함수 호출 시 넣어주는 인수 값들 중 일반 인수에 할당되는 값을 제외한 나머지 값들을
 지닌 튜플 객체가 할당됨
* C 언어의 printf문과 유사한 형태의 printf 정의 됨


튜플 인수와 사전 인수로 함수 호출하기
* 함수 호출 시 * 사용하고 뒤에 튜플을 넣으면 튜플 전체 호출 가능
* 함수 호출 시 ** 사용하고 뒤에 사전을 넣으면 사전 전체 호출 가능

반응형

+ Recent posts