코드 안에서는 함수명 뒤에 나오는 괄호 안에 인수(argument)를 콤마로 구분해 전달함으로써 함수를 호출할 수 있다. 파이썬이 프로그램을 실행할 때, 파이썬이 주어진 인수를 이용해 함수를 호출(call)(혹은 평가(evaluate))하고 값을 반환(return)한다. 엄격히 말하면 함수는 객체에 대한 참조를 반환하며, 이 객체가 값을 가지고 있는 것이다. 함수를 호출하는 문장도 일종의 표현식이므로, 함수를 호출할 때는 math.sin(x) * math.cos(y)
처럼 변수와 리터럴을 이용해 복잡한 표현식을 만드는 방식을 그대로 사용할 수 있다. 그리고 표현식을 이용해 인수를 전달할 수도 있다. 파이썬은 표현식을 먼저 평가하고 그 결괏값을 인수로 전달한다. 따라서 math.sqrt(b*b - 4.0*a*c)
처럼 같이 호출해도 파이썬은 의도한 바를 제대로 파악해 처리한다.
▼ 표 1.2.15 함수 호출 예
함수 호출 |
반환 값 |
설명 |
abs(-2.0) |
2.0 |
내장 함수 |
max(3, 1) |
3 |
인수 두 개를 받는 내장 함수 |
stdio.write('Hello') |
|
도서 예제용 라이브러리 함수 |
math.log(1000, math.e) |
6.907755278982137 |
math 모듈에 정의된 함수 |
math.log(1000) |
6.907755278982137 |
두 번째 인수는 기본값 math.e |
math.sqrt(-1.0) |
실행 오류 |
음수의 제곱근 |
random.random() |
0.3151503393010261 |
random 모듈에 정의된 함수 |
선택적 인수를 전달하지 않는 경우 기본값(default value)을 사용하는 함수도 있다. math.log()
는 로그 밑수를 두 번째 인수에 선택적으로 받으며, 두 번째 인수를 지정하지 않는 경우 e를 밑수로 하는 자연로그를 구한다.