Positional arguments
함수 호출 시 인수 순서대로 매개변수에 값을 전달. (위치 기반)
# positional
def checkout(name, age, birth):
print(f'{name}, {age}, {birth}')
checkout('kim', 99, '2020/07/17')
첫 번째 인수 'kim' 은 name 매개변수에 전달
두 번째 인수 99 는 age 매개변수에 전달
세 번째 인수 '2020/07/17' 은 birth 매개변수에 전달
Keyword arguments
함수 호출 시 매개변수 이름대로 인자를 매칭. (키워드 기반)
# keyword
def checkout(name, age, birth):
print(f'{name}, {age}, {birth}')
checkout(name='kim', age=99, birth='2020/07/17')
위치기반 인수와 혼용하여 입력 시
항상 위치기반 인수가 먼저 입력되어야 함
# Error
def checkout(name, age, birth):
print(f'{name}, {age}, {birth}')
checkout(name='kim', 99, '2020/07/17')
# positional + keyword
def checkout(name, age, birth):
print(f'{name}, {age}, {birth}')
checkout('kim', 99, birth='2020/07/17')
Optional(*args, **kwargs)
추가적으로 임의의 위치기반 인수를 전달 받을 때 관례적으로 *args를 매개변수로 사용
입력받은 인수를 tuple 형식으로 반환
# optional + positional
def check(name, age, birth, *args):
print(f'{name}, {age}, {birth}')
print(args)
print(f'입력된 선택적 위치기반 매개변수의 개수 : {len(args)}')
check('kim', 99, '2021/07/17', 'input args!')
마찬가지로 임의의 키워드기반 인수를 전달 받을 때 **kwargs를 매개변수로 사용
입력받은 인수를 dictionary 형식으로 반환
# optional + keyword
def checkout(name, price, time, **kwargs):
print(f'{name}님 {price}원 입니다. 시간은 {time} 입니다.')
print(kwargs)
for key, value in kwargs.items():
print(f'key:{key}/ value:{value}')
print(f'{len(kwargs)}개의 선택적 키워드 매개변수가 있습니다.')
checkout(name='kim', price='10000', time='17:51', no = 12312)
'Programming > [Python]' 카테고리의 다른 글
[Python] 데이터 수집을 위한 웹 크롤링(Crawling) (0) | 2021.08.03 |
---|---|
[Python/점프 투 파이썬 복습] 2. (6) Python 프로그래밍 자료형 연습문제 (0) | 2021.02.23 |
[Python/점프 투 파이썬 복습] 2. (5) Python 프로그래밍 자료형(변수) (0) | 2021.02.22 |
[Python/점프 투 파이썬 복습] 2. (4) Python 프로그래밍 자료형(집합 자료형) (0) | 2021.02.19 |
[Python/점프 투 파이썬 복습] 2. (3) Python 프로그래밍 자료형(튜플, 딕셔너리 자료형) (0) | 2021.02.18 |