본문 바로가기
python

(문법) Asterisk - * / **

by 브라더빅 2021. 4. 29.

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...


참고자료

jhproject.tistory.com/109

 

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