
def plus(매개변수1, 매개변수2):
    return 매개변수1 + 매개변수2
def plus(매개변수1, 매개변수2):
    return 매개변수1 + 매개변수2
    
plus(전달인자1, 전달인자2)
전달인자의 개수를 명확하게 정할 수 없을 때 사용.
def plus(*매개변수1):
    return sum(매개변수1)
    
plus(1,2,3,4,5)   
매개변수를 원하는 이름으로 지어줘도 되지만, 관례적으로 args를 사용.
def plus(*args):
    return sum(args)
    
plus(1,2,3,4,5)   
고정 인수와 가변 인수를 함께 쓸 때는 고정 인수를 먼저 지정해야함.
def plus(a, *args):
    print(a)	# 1
    return sum(args)	# sum(2,3,4,5) = 14
    
plus(1,2,3,4,5)   
함수의 인수가 많아지면 인수의 순서를 외워 작성하는 것은 힘듦.
키워드 인수를 사용하면 키워드=값이 되므로 순서를 신경쓰지 않아도 됨.
def people(name, age, addr, phone, blood):
    print(f'이름은 {name} 입니다.')
    print(f'나이는 {age} 입니다.')
    print(f'주소는 {addr} 입니다.')
    print(f'번호는 {phone} 입니다.')
    print(f'혈액형은 {blood} 입니다.')
# bad
people("김철수",22,"지구어딘가","012-3456-7890","B")
# good
people(age=22,phone="012-3456-7890",name="김철수",blood="B",addr="지구어딘가")
공식문서에서 보면 int(x,base=10) 처럼 키워드 인수를 쉽게 찾아볼 수 있다.
참고로 print(10,20,end='')도 end=''이 키워드 인수이다.

딕셔너리를 키워드 인수로 사용할 때는 애스터리스크를 두 개 붙여야한다.
딕셔너리에서 한 번 언패킹하면 키를 사용하겠다는 뜻.
두 번 언패킹하면 값을 사용하겠다는 뜻.
def people(name, age, addr, phone, blood):
    print(f'이름은 {name} 입니다.')
    print(f'나이는 {age} 입니다.')
    print(f'주소는 {addr} 입니다.')
    print(f'번호는 {phone} 입니다.')
    print(f'혈액형은 {blood} 입니다.')
dictionary = {'age':22,'phone':'012-3456-7890','name':'김철수','blood':'B','addr':'지구어딘가'}
people(**dictionary)
관례적으로 **kwargs를 매개 변수로 사용.
def people(**kwargs):
    for kw, arg in kwargs.items():
        print(f'{kw}은(는) {arg} 입니다.')
dictionary = {'age':22,'phone':'012-3456-7890','name':'김철수','blood':'B','addr':'지구어딘가'}
people(**dictionary)
가변 인수와 키워드 인수를 같이 사용할 때는
*args,**kwargs순으로 지정해야함.def custom_print(*args, **kwargs): print(*args, **kwargs)
매개변수에 매개변수=값을 설정하면 초깃값을 설정할 수 있다.
def people(blood=`B`):
    print(f'혈액형은 {blood} 입니다.')	# 혈액형은 B 입니다.
    
people()    
초깃값 매개변수 뒤에 일반 매개변수가 오면 오류가 발생한다.
# bad
def people(blood=`B`, name):
    print(f'이름은 {name} 입니다.')
    print(f'혈액형은 {blood} 입니다.')	# 혈액형은 B 입니다.
    
# good
def people(name, blood=`B`):
    print(f'이름은 {name} 입니다.')
    print(f'혈액형은 {blood} 입니다.')	# 혈액형은 B 입니다.