파이썬 초보자를 위한 args kwargs 완벽 가이드: 인자 매개변수 차이

안녕하세요, 파이썬 초보 개발자 여러분! 🐍
함수를 만들다 보면 args kwargs 같은 이상한 녀석들을 마주치신 적 있으시죠? “이게 뭐지? 왜 쓰는 거지?” 하고 고개를 갸우뚱하셨다면, 오늘의 포스트는 여러분을 위한 거예요!
args와 kwargs, 그리고 인자와 매개변수의 세계로 함께 떠나볼까요? 걱정 마세요, 어렵지 않아요. 제가 쉽고 재미있게 설명해드릴게요. 이 포스트를 다 읽으시면, 여러분도 args와 kwargs를 자유자재로 다룰 수 있는 파이썬 마스터가 되실 거예요! 😎
args kwargs란 무엇일까요?
먼저 args kwargs가 뭔지 알아볼까요? 간단히 말해서, 이 둘은 함수에 여러 개의 인자를 넘겨줄 때 사용하는 특별한 문법이에요. 아래와 같이 *를 붙혀서 사용합니다.
- *args: 여러 개의 위치 인자를 튜플로 받아요.
- **kwargs: 여러 개의 키워드 인자를 딕셔너리로 받아요.
어렵나요? 걱정 마세요. 예시를 통해 더 자세히 알아볼게요!
args kwargs 사용 예시
*args 사용 예시
def print_args(*args):
for arg in args:
print(arg)
print_args('안녕', '파이썬', '세상')코드 해설:
def print_args(*args):: *args를 사용해 print_args라는 이름으로 함수를 정의해요.for arg in args:: args에 들어온 모든 인자를 순회해요.print(arg): 각 인자를 출력해요.print_args('안녕', '파이썬', '세상'): 함수를 호출하면서 여러 개의 인자를 전달해요.
이렇게 하면 ‘안녕’, ‘파이썬’, ‘세상’이 각각 새 줄에 출력돼요. 멋지죠?

**kwargs 사용 예시
이번엔 kwargs를 써볼까요?
def print_kwargs(**kwargs):
for key, value in kwargs.items():
print(f"{key}: {value}")
print_kwargs(이름="파이썬", 나이=30, 직업="프로그래머")코드 해설:
def print_kwargs(**kwargs):: **kwargs를 사용해 print_kwargs라는 이름의 함수를 정의해요.for key, value in kwargs.items():: kwargs의 모든 키-값 쌍을 순회해요.print(f"{key}: {value}"): 각 키-값 쌍을 출력해요.print_kwargs(이름="파이썬", 나이=30, 직업="프로그래머"): 키워드 인자를 사용해 함수를 호출해요.
이렇게 하면 ‘이름: 파이썬’, ‘나이: 30’, ‘직업: 프로그래머’가 각각 새 줄에 출력돼요. 정말 편리하죠?

인자 매개변수 차이
자, 이제 인자 매개변수 차이에 대해 알아볼까요? 이 둘은 비슷해 보이지만, 실은 다른 개념이에요.
- 매개변수(Parameter): 함수를 정의할 때 사용하는 변수예요.
- 인자(Argument): 함수를 호출할 때 전달하는 실제 값이에요.
예를 들어볼게요. 아래는 greet라는 이름의 함수를 만들고 난 뒤 그 함수를 호출하는 예시입니다.
def greet(name): # 여기서 name은 매개변수예요
print(f"안녕하세요, {name}님!")
greet("파이썬") # 여기서 "파이썬"은 인자예요이해가 되시나요? 매개변수는 함수의 “틀”이고, 인자는 그 틀에 넣는 “실제 값”이라고 생각하시면 돼요.
args kwargs를 실제로 어떻게 활용할까요?
args와 kwargs는 정말 다양한 상황에서 유용하게 쓸 수 있어요. 예를 들어, 인자 개수가 유동적일 때 특히 빛을 발하죠.
def make_pizza(*toppings, **details):
print(f"피자 토핑: {', '.join(toppings)}")
for key, value in details.items():
print(f"{key}: {value}")
make_pizza("치즈", "올리브", "피망", 크기="large", 가격=20000)코드 해설:
def make_pizza(*toppings, **details):: args와 kwargs를 동시에 사용해요.print(f"피자 토핑: {', '.join(toppings)}"): 모든 토핑을 쉼표로 구분해 출력해요.for key, value in details.items():: 추가 정보를 순회해요.print(f"{key}: {value}"): 각 추가 정보를 출력해요.make_pizza("치즈", "올리브", "피망", 크기="large", 가격=20000): 다양한 인자를 전달해 함수를 호출해요.
이렇게 하면 토핑과 추가 정보를 자유롭게 전달할 수 있어요. 정말 편리하죠?

자, 여기까지 args kwargs, 그리고 인자 매개변수 차이에 대해 알아봤어요. 어떠세요? 생각보다 어렵지 않죠? 이제 여러분도 이 개념들을 자유자재로 활용할 수 있을 거예요.







