-위치인수(positional argument): 함수에 인수를 순서대로 넣는 방식. 인수의 위치가 정해져있음.
예)
print(10,20,30)
10,20,30
-인수를 순서대로 넣은 때 리스트,튜플 사용 가능.(리스트,튜플 앞에*(애스터리스크)를 붙여서 함수에 넣어주면 됨)
문법: 함수(리스트) 또는 함수(튜플)
x = [1,2,3]
>>> def hi(a,b,c):
print(a)
print(b)
print(c)
>>> hi(*x)
1
2
3
>>> hi(*[1,2,3])
1
2
3
문법
def 함수이름(*매개변수):
코드
예시
def print_nubmer(*args):
for arg in args:
print(arg)
>>> print_nubmer(10)
10
>>> print_nubmer(1,2,3,4)
1
2
3
4
>>> x=10,20
>>> print_nubmer(*x)
10
20
*문법: 함수(딕셔너리)***
예
def personal_info(name, age, address):
print('이름:', name)
print('나이:', age)
print('주소:', address)
>>> x = {'name': 'kim', 'age' : 28, 'address' : 'Seoul'}
>>> personal_info(**x) #혹은 personal_info(**{'name': 'kim', 'age' : 28, 'address' : 'Seoul'})
이름: kim
나이: 28
주소: Seoul
-딕셔너리 언패킹 사용할 땐 매개변수이름=딕셔너리키값이름 같아야 한다.
-매개변수 개수=키 개수 같아야 한다.
-*를 한번만 사용하면? 아래와 같이 된다.
personal_info(*x)
이름: name
나이: age
주소: address
즉, **는 딕셔너리 두 번 언패킹 하는 것.
def personal_info(**kwargs):
for kw, arg in kwargs.items():
print(kw,':', arg, sep='')
>>> personal_info(name='kim', age=28)
name:kim
age:28
>>> x = {'name' : 'lee', 'age' : 30}
>>> personal_info(**x)
name:lee
age:30
-보통 **kwargs
를 사용한 가변 인수 함수는 다음과 같이 함수 안에서 특정 키가 있는지 확인한 뒤 해당 기능을 만듬
문법:
def 함수이름(매개변수=값):
코드
가장 중요한 것: 복수의 매개변수 생성시 초깃값이 있는 매개변수는 맨 뒤로 가야한다. because 초깃값을 가진 매개변수 뒤에 초깃값이 없는 매개변수가 오면 오류가 발생
예시
def personal_info(name, age, address='비공개'):
print('이름:', name)
print('나이:', age)
print('주소:', address)
>>> personal_info(name='kim', age=30)
이름: kim
나이: 30
주소: 비공개