함수
함수를 이용하면 프로그래밍을 더욱 간단하고 파워풀하게 만들 수 있다.
파이썬에서 함수는 매개변수, 리턴에서 다른 언어들과 달리 유용한 형태가 많다.
함수 기본
기본적인 함수라 설명은 생략하겠다.
기본값 매개변수 사용(default argument)
다른 언어와 달리 함수 자체에 기본적인 매개변수의 값을 설정할 수 있다.
따라서, 해당 매개변수가 전달되지 않았다면 기본값으로 함수를 실행한다.
또한, 전달할 때 변수 이름 = 값과 같은 형태로 매개변수를 전달할 수 있다.
굳이 순서를 맞춰서 전달할 필요가 없어지기 때문에 매우 편리하고 정확해진다.
가변 매개변수 (arbitrary argument)
파이썬은 매개변수의 개수도 가변적으로 사용할 수 있다.
매개변수 마지막에 전달되는 매개변수의 길이를 한정하지 않는다는 뜻이다.
*를 쓰면 튜플타입의 매개변수
**를 쓰면 딕셔너리타입의 매개변수이다.
매개변수 제일 마지막에만 가능하다는 점을 유의하자.
멀티 리턴
프로그래밍을 하다 보면 이 기능이 너무 유리하다는 점을 느낄 것이다.
다른 언어는 하나의 return값만 가능하기 때문에 변수마다 하나씩 함수를 만들거나 함수를 두 번 실행해야 한다.
하지만, 파이썬은 동시에 여러 개의 값을 리턴할 수 있다.
출력 결과는 다음과 같다.
전역 변수 사용 방법
변수 앞에 global을 붙여주면 된다.
파이썬은 특이하게 함수를 변수에 저장하여 사용하기도 한다.
매개변수 전달 방식
파이썬에는 모든 것이 불변 객체, 가변 객체로 구분된다.
쉽게 말하자면 불변 객체는 원래 값을 바꿀 수 없고, 원래 값만 보낸다고 생각하면 된다.
가변 객체는 주소를 전달하여 변경이 가능하게 전달을 하는 것이다.
(하지만 같은 이름으로 새로운 변수를 만들었다면 새로운 객체가 생성되는 것이지 원래 객체가 변경되는 것이 아니다.)