프롬프트
프롬프트 영역으로 마우스를 옮기고 Copy 버튼을 누르면 클립보드에 프롬프트의 내용이 복사됩니다.마이크로파이썬에서 함수의 매개변수와 인자를 구분해 설명해 줘.
AI가 만든 결과
마이크로파이썬(MicroPython)에서의 함수 매개변수(parameter)와 인자(argument) 개념은 일반 파이썬(CPython)과 동일하게 적용됩니다. 다만, 마이크로컨트롤러 환경에서는 메모리나 성능 제약이 있다는 점만 유의하면 됩니다. 아래에서 매개변수와 인자를 어떻게 구분하고, 어떻게 사용하는지 설명해 드리겠습니다.
1. 함수 매개변수(Parameter)
- 함수를 정의할 때, 함수가 받을 수 있는 입력값(‘자리’)을 매개변수(parameter)라고 합니다.
- 매개변수는 이름만을 가지며, 함수의 정의부(
def my_function(x, y, ...):
)에서 선언됩니다. 예를 들어, 다음 코드에서
a
,b
는 함수 정의 시 선언된 매개변수입니다.def add(a, b): return a + b
a
,b
는 함수의 매개변수- 아직 구체적인 값이 아닌, 함수가 필요로 하는 입력 자리(placeholder)입니다.
1-1. 매개변수 종류
파이썬(마이크로파이썬 포함)은 일반적으로 아래와 같은 매개변수를 지원합니다(버전에 따라 제한이 있을 수 있음).
- 위치 매개변수(Positional parameter): 순서에 맞게 인자를 받음
- 기본값 매개변수(Default parameter): 인자를 전달하지 않아도 기본값 사용
- 키워드 매개변수(Keyword parameter): 인자 이름을 명시해 전달
- *가변 매개변수(args, kwargs): 개수가 불확실한 인자를 받음
- MicroPython에서도 대부분 지원하지만, 일부 구버전에서는 제약이 있을 수 있습니다.
2. 함수 인자(Argument)
- 함수를 호출할 때, 실제로 전달되는 구체적인 값들을 인자(argument)라고 부릅니다.
- 즉, 함수 정의에서 선언된 매개변수(Parameter) 자리로 실제로 들어가는 값이 인자(Argument)입니다.
-
예를 들어, 아래 코드에서
add(5, 10)
을 호출할 때5
,10
은 인자입니다.result = add(5, 10) # 5, 10은 인자(argument) print(result) # 15
2-1. 인자 종류
- 위치 인자(Positional argument): 순서대로 매개변수에 전달되는 인자
- 키워드 인자(Keyword argument):
매개변수이름=값
형태로 전달 - 가변 인자:
*args
,**kwargs
로 받는 여러 개의 값
예:
def show_info(name, age=0): print(f"이름: {name}, 나이: {age}") show_info("Alice", 25) # 위치 인자 show_info(name="Bob", age=30) # 키워드 인자 show_info("Charlie") # age 기본값 0 사용
3. MicroPython에서의 주의사항
메모리 제약
- 마이크로파이썬은 일반 파이썬보다 메모리와 스택 크기가 작을 수 있으므로,
매개변수·인자를 한 번에 너무 많이 사용하지 않도록 주의해야 합니다. - 필요 이상으로 큰 데이터를 인자로 넘기기보다는, 전역 변수나 직접 읽어오는 방식을 쓸 수도 있습니다(물론 코드 설계에 따라).
- 마이크로파이썬은 일반 파이썬보다 메모리와 스택 크기가 작을 수 있으므로,
버전별 기능 지원
- 마이크로파이썬의 버전에 따라 가변 인자(
*args
,**kwargs
), 디폴트 매개변수, 키워드 전용 매개변수 등이 부분적으로 제한될 수 있습니다. - 대부분의 현대 마이크로파이썬 버전(예: 1.13 이상)에서는 일반 파이썬과 거의 유사하게 매개변수/인자를 활용할 수 있습니다.
- 마이크로파이썬의 버전에 따라 가변 인자(
4. 간단 예시
아래는 매개변수(x
, y
)를 정의하고, 함수 호출 시 인자를 넘기는 마이크로파이썬 코드 예시입니다.
# 함수 정의: x, y라는 매개변수를 가짐 def multiply(x, y): product = x * y return product # 함수 호출: 3, 4라는 실제 인자를 전달 result = multiply(3, 4) print("Result:", result) # 출력: Result: 12
def multiply(x, y):
x
,y
는 매개변수 (함수 정의 시)
multiply(3, 4)
3
,4
는 인자 (함수 호출 시)
- 결과(
12
)가result
변수에 저장,print()
로 확인
결론
- 매개변수(Parameter): 함수를 정의할 때 사용하는 이름(자리)
- 인자(Argument): 함수를 호출할 때 전달하는 구체적인 값
- 마이크로파이썬에서도 일반 파이썬과 동일한 방식으로 사용하되, 메모리와 버전에 따른 제한 사항을 염두에 두면 됩니다.