- 파이썬은 함수(function)라는 기능을 제공하는데 특정 용도의 코드를 한 곳에 모아 놓은 것을 뜻한다.
- 함수는 처음 한 번만 작성해 놓으면 나중에 필요할 때 계속 불러 쓸 수 있다.(재사용 가능한 코드 블록)
- 함수의 장점
- 코드 재사용 : 같은 기능을 여러 번 사용할 때 코드 중복을 줄일 수 있다.
- 가독성 향상 : 코드를 기능별로 나누어 명확하게 표현이 가능하다.
- 유지보수 용이 : 특정 기능을 변경할 때 함수만 수정하면 된다.
- 모듈화 가능 : 여러 개의 작은 함수로 나누어 큰 프로그램을 쉽게 구성이 가능하다.
- 함수의 단점
- 메모리 사용 증가 : 함수 호출이 많아지면 스택 메모리를 많이 사용하게 된다.
- 추가적인 실행 시간 필요 : 함수 호출 자체가 오버헤드 될 수 있다.(작은 연산시)
- 잘못된 사용 시 복잡성 증가 : 너무 많은 함수를 정의하면 오히려 가독성이 떨어질 수 있다.
- 함수의 주요 특징
- 매개변수와 반환값
- 매개변수(Parameter) : 함수가 입력을 받을 때 사용하는 변수.
- 반환값(Return Value) : 함수가 실행된 후 돌려주는 값.
- 기본값을 가진 매개변수
- 기본값이 설정된 매개변수는 값을 입력하지 않으면 기본값이 사용된다.
- 가변 인자(*args, **kwargs)
- *args : 여러 개의 위치 인자를 받을 수 있음.
- **kwargs : 여러 개의 키워드 인자를 받을 수 있음.
- 매개변수와 반환값
함수 만들기
함수 결과 반환하기
- return을 사용하면 값을 함수 바깥으로 반환할 수 있고, 함수에서 나온 값을 변수에 저장할 수 있다.
- return으로 반환하는 값을 반환값이라 하며, 함수를 호출해준 바깥에 결과를 알려주기 위해 사용한다.
함수에서 값을 여러 개 반환하기
함수의 호출 과정
- 함수 여러 개를 만든 뒤 각 함수의 호출 과정을 스택 다이어그램(Stack Diagram)이라고 한다.
- 스택은 위쪽부터 차례대로 꺼내는 방식(중간은 뺄 수 없음)
- 초기상태
- x = 10, y = 20이 메모리에 저장됨.
- add(x, y)가 호출됨 >>>>> 새로운 스택 프레임이 생성됨.
단계 | 호출 스택(Call Stack) | 설명 |
1. add(10, 20) 호출 | add 함수 실행 | 새로운 스택 프레임 생성 |
2. c = 10 + 20 | c = 30 저장 | 메모리에 c = 30 저장 |
3. print(c) 실행 | 30 출력 | print()를 통해 30 출력 |
4. d = 10 * 20 | d = 200 저장 | 메모리에 d = 200 저장 |
5. print(d) 실행 | 200 출력 | print()를 통해 200 출력 |
6. add 함수 종료 | 스택에서 add 제거 | 함수 종료 후 스택 프레임 제거 |
함수 실행 시
함수가 끝난 뒤
- 함수는 스택 방식으로 호출된다.
- 함수를 호출하면 스택의 아래쪽 방향으로 함수가 추가되고, 함수가 끝나면 위쪽 방향으로 사라진다.
- 프레임은 스택 안에 있어서 각 프레임을 스택 프레임이라고 부른다.
- 전역 프레임은 스크립트 파일의 실행이 끝나면 사라진다.
함수에서 인수 사용하기
- 위치 인수(Positional Arguments) : 함수의 매개변수(Parameter)에 순서대로 값을 전달하는 방식.
- 매개변수의 순서대로 값이 전달됨.
- 개수와 순서가 중요 >>> 잘못된 순서로 전달하면 의미가 달라질 수 있음.
- 리스트 언패킹(List Unpacking) : 여러 개의 값을 리스트/튜플로 한 번에 전달할 때 사용.
- 리스트 형태로 전달하면 각 요소가 개별적인 위치 인수로 전달됨.
- 튜플도 동일하게 적용이 가능.
키워드 인수
- 인수의 순서와 용도를 매번 기억하지 않도록 키원드 인수 기능 사용. >>> 함수(키워드=값)
- 키워드 인수를 사용하면 함수를 호출할 때 인수의 용도를 명확히 볼 수 있음.
- 키워드 인수를 사용하면 인수의 순서를 맞추지 않아도 키워드에 해당하는 값이 들어간다.
키워드 인수와 딕셔너리 언패킹 사용하기
딕셔너리의 키워드(키)는 반드시 문자열 형태!!!!
- 딕셔너리는 *를 두 번 사용하는 이유 : 딕셔너리는 키-값 쌍의 형태로 값이 저장되어 있어서.
키워드 인수를 사용하는 가변 인수 함수
매개변수에 초기값 지정하기
- 매개변수의 초기값은 주로 사용하는 값이 있고, 가끔 다른 값을 사용해야 할 때 활용한다.
- 매개변수의 초깃값을 지정할 때 주의할 점
- 초기값이 지정된 매개변수 다음에는 초기값이 없는 매개변수가 올 수 없다.
- >>> 초기값이 지정된 매개변수는 뒤쪽에 몰아주기!
'개인 공부' 카테고리의 다른 글
[Python] 2차원 리스트 (0) | 2025.02.22 |
---|---|
[Python] 리스트와 튜플 (3) (0) | 2025.02.22 |
[Python] 반복문 (0) | 2025.02.22 |
[Python] 조건문 (0) | 2025.02.21 |
[Python] 딕셔너리 (0) | 2025.02.21 |