파이썬에서 def 키워드는 함수를 정의할 때 사용됩니다. 함수를 사용하면 특정 기능을 재사용할 수 있고, 코드의 가독성도 향상됩니다. 함수를 정의할 때 **매개변수(parameter)**와 인자(argument) 개념이 등장합니다. 이들의 관계와 함수가 실행되는 방식에 대해 자세히 설명하겠습니다.
1. 함수 정의와 기본 구조
파이썬 함수는 def 키워드로 정의되며, 함수의 이름과 괄호 안에 매개변수를 지정합니다. 함수 정의 후에는 반드시 **return**을 사용하여 값을 반환하거나, 함수 내부에서 특정 작업을 수행합니다.
기본 문법:
def 함수이름(매개변수1, 매개변수2, ...):
# 함수가 실행할 코드
return 반환값 # (필요한 경우에만)
예시: 기본 함수 정의
def greet(name):
print(f"Hello, {name}!")
greet("철수") # 출력: Hello, 철수!
위의 예시에서, greet 함수는 name이라는 매개변수를 받으며, name을 이용하여 인사 메시지를 출력합니다. greet("철수")에서 "철수"는 인자입니다.
2. 매개변수와 인자의 차이
- 매개변수 (Parameter): 함수가 정의될 때 괄호 안에 있는 변수들을 매개변수라고 합니다. 이는 함수가 호출될 때 전달될 값을 담을 변수입니다.
- 인자 (Argument): 함수를 호출할 때 실제로 전달되는 값이 인자입니다. 함수가 호출되면서 전달된 값이 매개변수에 대응됩니다.
예시:
def add(x, y): # x와 y는 매개변수
return x + y
result = add(3, 4) # 3과 4는 인자
print(result) # 출력: 7
이 예시에서:
- x와 y는 매개변수
- 3과 4는 인자입니다.
3. 함수 실행 방식
함수는 정의된 후, 호출되어야 실행됩니다. 함수 호출 시 매개변수에 맞춰 인자가 전달되며, 그에 따라 함수 내부의 코드가 실행됩니다.
함수 실행 과정:
- 함수가 정의됩니다.
- 함수가 호출될 때, 전달된 인자들이 매개변수에 할당됩니다.
- 함수 내부에서 매개변수를 사용하여 계산이나 작업을 수행합니다.
- return문을 통해 결과값을 반환하거나, 함수가 종료되면 그 값을 반환하지 않으면 None을 반환합니다.
예시: 함수 실행 과정
def multiply(a, b):
return a * b
# 함수 호출
result = multiply(5, 3)
# 결과 출력
print(result) # 출력: 15
- multiply 함수가 정의됩니다.
- multiply(5, 3)이 호출되면서 a는 5, b는 3으로 할당됩니다.
- 함수 내부에서 5 * 3이 계산되어 15가 반환됩니다.
- 반환된 값인 15는 변수 result에 저장되고 출력됩니다.
4. 매개변수의 종류
파이썬 함수에서 매개변수는 여러 가지 방식으로 정의할 수 있습니다.
1) 기본 매개변수 (Default Parameters)
기본값을 지정한 매개변수는 함수 호출 시 인자를 생략할 수 있습니다. 이 경우, 생략된 인자에는 기본값이 사용됩니다.
예시: 기본 매개변수
def greet(name="Guest"):
print(f"Hello, {name}!")
greet() # 출력: Hello, Guest!
greet("철수") # 출력: Hello, 철수!
여기서 name은 기본값이 "Guest"로 설정되어 있기 때문에, 인자를 넘기지 않으면 "Guest"가 사용됩니다.
2) 가변 매개변수 (Variable-length Parameters)
파이썬에서는 함수가 가변 인자를 받을 수 있도록 정의할 수 있습니다. 이를 위해 ***args**와 ****kwargs**를 사용합니다.
- *args: 여러 개의 위치 인자를 받을 때 사용됩니다. 함수 호출 시 여러 개의 값을 튜플 형태로 받습니다.
- **kwargs: 여러 개의 키워드 인자를 받을 때 사용됩니다. 함수 호출 시 여러 개의 인자를 딕셔너리 형태로 받습니다.
예시: *args 사용
def add_numbers(*args):
return sum(args)
result = add_numbers(1, 2, 3, 4)
print(result) # 출력: 10
- *args는 여러 개의 인자를 받아 튜플로 처리합니다.
예시: **kwargs 사용
def greet(**kwargs):
print(f"Hello, {kwargs['name']}! Age: {kwargs['age']}")
greet(name="철수", age=25) # 출력: Hello, 철수! Age: 25
- **kwargs는 키워드 인자를 받아 딕셔너리로 처리합니다.
3) 키워드 전용 인자 (Keyword-only Arguments)
*를 매개변수 목록에 추가하면 그 뒤에 오는 매개변수는 키워드 전용 인자로, 호출 시 반드시 이름을 명시해야 합니다.
예시: 키워드 전용 인자
def greet(*, name, age):
print(f"Hello, {name}! Age: {age}")
greet(name="철수", age=25) # 출력: Hello, 철수! Age: 25
- name과 age는 키워드 전용 인자로, greet 함수 호출 시 이름을 명시해야만 전달할 수 있습니다.
5. 함수 반환값 (Return)
함수는 return 문을 사용하여 값을 반환할 수 있습니다. 만약 return 문이 없다면, 함수는 **None**을 반환합니다. return 문은 함수를 종료시키고, 함수 호출 위치로 값을 반환합니다.
예시: 반환값 사용
def square(x):
return x * x
result = square(4)
print(result) # 출력: 16
return이 없는 경우:
def greet(name):
print(f"Hello, {name}!")
result = greet("철수")
print(result) # 출력: None
- greet 함수는 return 문이 없기 때문에, result에는 None이 할당됩니다.
6. 함수의 실행 흐름
- 함수 정의: 함수가 메모리에 저장됩니다. 이 시점에서는 함수가 실행되지 않습니다.
- 함수 호출: 함수가 호출될 때, 인자들이 매개변수에 할당됩니다.
- 함수 실행: 함수 내부의 코드가 실행됩니다.
- 값 반환: return문이 있으면 값이 반환되고, 함수 호출 지점으로 돌아갑니다.
예시: 함수의 실행 흐름
def multiply(a, b):
return a * b
# 함수 호출
result = multiply(4, 5) # 인자 4, 5가 매개변수 a, b에 할당됨
print(result) # 출력: 20
- multiply 함수가 정의됩니다.
- multiply(4, 5)가 호출되면서, a = 4와 b = 5가 매개변수에 할당됩니다.
- a * b가 실행되어 20이 반환됩니다.
- result에 20이 할당되고 출력됩니다.
결론
- 함수는 코드의 재사용을 돕고, 특정 작업을 묶어서 관리할 수 있는 중요한 기능입니다.
- 매개변수는 함수 정의 시 사용되는 변수이며, 인자는 함수 호출 시 실제로 전달되는 값입니다.
- 파이썬에서는 다양한 형태의 매개변수를 사용하여 가변 인자, 키워드 인자 등을 처리할 수 있습니다.
- 함수는 **return**을 사용하여 값을 반환하거나, 값이 없으면 **None**을 반환합니다.
'New 정보 > IT정보' 카테고리의 다른 글
| 파이썬 .format 메서드 (0) | 2025.08.06 |
|---|---|
| 파이썬 if 조건문 else와 elif 사용 주의사항 및 장점 (0) | 2025.08.04 |
| 파이썬 블럭 구조 (0) | 2025.08.04 |
| 파이썬 불리언 Boolean 로직 / 논리연산자 / 비교연산자 (0) | 2025.08.04 |
| PWA (Progressive Web App) 프로그레시브 웹 앱 (0) | 2025.07.16 |
댓글