상세 컨텐츠

본문 제목

19. 파이썬 가변 매개변수와 키워드 가변 매개변수

프로그래밍 언어/Python(파이썬)

by 알파고제로 2023. 10. 13. 16:56

본문

■ *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해서 전달

'프로그래밍 언어 > Python(파이썬)' 카테고리의 다른 글

20. Filter, Map, Reduce  (0) 2023.10.13
18. 파이썬 변수 범위  (0) 2023.10.13
17. 파이썬 함수  (0) 2023.10.13

관련글 더보기

댓글 영역