Asterisk
*args
파라미터를 몇개 받을지 모르는 경우 사용하며, args는 튜플 형태로 전달된다.
def func(*args):
print(args)
for a in args:
print(a)
func('a','b','c','d')
#('a','b','c','d')
#a
#b
#c
#d
**kwargs
파라미터 명을 같이 보낼 수 있다. kwargs는 딕셔너리 형태로 전달된다.
def func2(**kwargs):
print(kwargs)
print(kwargs.keys())
print(kwargs.values())
for key, value in kwargs.items():
print(f'{key}:{value}')
func2(one=1,two=2,three=3) # key값을 문자열로 주면 안됨. value는 문자열도 가능
#{'one': 1, 'two': 2, 'three': 3}
#dict_keys(['one', 'two', 'three'])
#dict_values([1, 2, 3])
#one:1
#two:2
#three:3
응용 1
def func3(*args, **kwargs):
print(args)
print(kwargs)
func3('a','b')
#('a','b')
#{}
func3(one=1,two=2)
#()
#{'one':1, 'two':2}
func3('a','b',one=1,two=2)
#('a','b')
#{'one':1, 'two':2}
응용 2
def func4(a,b,c):
print(a,b,c)
p = ['one','two','three']
func4(*p)
#one two three
p2 = {'a':1, 'b':2, 'c':3}
func4(**p2)
#1 2 3
TBD...
참고자료
Python - 파라미터 앞에 *, ** 의 의미? (*args, **kwargs)
참고 : http://stackoverflow.com/questions/3394835/args-and-kwargs 다른사람들이 작성한 python 코드를 보다보면 *args, **kwargs 를 심심치 않게 본다. 그냥 막연하게 "어떤 파라미터를 몇개를 받을지 모르..
jhproject.tistory.com
※ 위 내용에 오류가 있거나 오타 및 각종 수정사항을 댓글을 주시면, 확인 후 수정하겠습니다. 각종 자료는 구글링을 통한 다양한 기술자료에서 인용하거나 정리한자료이며, 출처를 최대한 표기하겠지만 문제사항이 있다면 적극적인 피드백 및 댓글 부탁드립니다. ※
'python' 카테고리의 다른 글
파이썬 객체 (0) | 2023.02.28 |
---|---|
(문법) Pandas Grouper (0) | 2021.05.05 |