■ *arg와 **kwargs 매개변수의 사용
- *args는 전달된 데이터를 튜플로 묶는다.
- **kwargs : 가변 인자를 dict() 타입으로 받음 (위치 인수를 넘기면 에러 발생)
- 위치 인수와 키워드 인수를 동시에 가변으로 취할 수도 있는데, 이때는 위치 인수가 먼저 오고 키워드 인수가 뒤에 온다.
# * : 이항연산자로서의 * , 둘을 붙여서 제곱연산가능, * 리스트와 함께 사용시 반복, unpacking, packing
# *args : 여러 개의 튜플 데이터를 묶어서 받을 수 있다. (가변인자)
def myfunc1(*args):
print(args)
myfunc1(1, 2, 3, 4, 5, 'a', 'b')
myfunc1()
def myfunc2(x, y, *args):
print(x, y, args)
myfunc2(1, 2, 3, 4, 5)
# myfunc2(1)
def myfunc3(*args):
print(args, '개수=>', len(args))
myfunc3(1, 2, 3, 4, 5)
myfunc3([1, 2, 3, 4, 5])
myfunc3((1, 2, 3, 4, 5))
myfunc3(*(1, 2, 3, 4, 5)) # 전달인자에서 * 사용시 unpacking
def myfunc4(**kargs):
print(kargs, type(kargs))
myfunc4(food="돈까스", drink="스프라이트", price=14500)
def myfunc5(*args, **kargs):
print(args)
print(kargs)
myfunc5(food="돈까스", drink="스프라이트", price=14500) # kargs를 사용하기 위해 key, value 쌍으로
myfunc5("돈까스", "스프라이트", 14500)
myfunc5("돈까스", "스프라이트", price=14500)
def myfunc6(**kwargs):
print(kwargs)
#print(kwargs['data']['food'])
print(kwargs['food'])
data = {'food':"돈까스", 'drink':"스프라이트", 'price':14500}
# myfunc6(data = data)
myfunc6(**data) # dic을 unpacking해서 전달
댓글 영역