CDW (Coding Discussion World)
python 기초 - 함수 (*args, **kwargs) 본문
반응형
함수란 다들 알다시피 함수를 만들고 원하는 값을 넣으면 함수 안의 내용이 수행된다.
함수에서 자주 사용하는 기능을 알아보자.
def sum_sum(a,b,c):
print(a+b+c)
sum_sum(1,2,3)
sum_sum(3,4,5)
6
12
1. 함수로 무언가 계산을 하거나 계산하는 값을 return 할 수 있다.
def sum_sum(a,b,c):
return (a+b+c)
result_1 = sum_sum(1,2,3)
print(result_1)
result_2 = sum_sum(3,4,5)
print(result_2)
6
12
2. 함수의 기본값을 설정할 수 있다.
기본값을 설정하면 함수에 해당 내용을 입력하지 않아도 에러가 나지 않고 기본값이 적용된다.
def sum_sum(a,b=2,c=3):
return (a+b+c)
result_1 = sum_sum(1)
print(result_1)
result_2 = sum_sum(1,2)
print(result_2)
6
6
3. 함수에 인자를 넣을때 인자를 지정하지 않으면 순서대로 적용되지만 어떤 인자인지 입력하면 순서는 상관이 없다.
def sum_sum(a,b,c):
return (a+b+c)
result_1 = sum_sum(b=2,c=3,a=1)
print(result_1)
result_2 = sum_sum(1,2,c=3)
print(result_2)
6
6
4. *args
함수의 인자앞에 *을 붙이면 가변인자가 된다. 가변인자가 되면 아래처럼 리스트로 담아지고 개수의 제한이 없어진다. (꼭 *args라고 표시할 필요는 없다)
def sum_sum(a,b,*c):
print(c)
sum_sum(1,2,3,4,5)
sum_sum(1,2,3,4,5,6,7)
(3, 4, 5)
(3, 4, 5, 6, 7)
5. *args 응용
가변인자는 리스트로 담기기 때문에 for 등을 이용해 응용이 가능하다.
def sum_sum(a,b,*c):
for i in c:
print(i)
sum_sum(1,2,3,4,5)
3
4
5
6. **kwargs
kwargs는 앞에 **를 붙이면 되고 dictionary가 된다.
def sum_sum(a,b,**c):
print(c)
sum_sum(1,2,dic1="dic_result1", dic2="dic_result2")
{'dic1': 'dic_result1', 'dic2': 'dic_result2'}
7. **kwargs 응용
그럼 **kwargs는 어떻게 응용이 가능할까? dictionary이므로 items()를 활용하여 key와 value를 원하는대로 control 할 수 있다.
def sum_sum(a,b,**c):
for i, j in c.items():
print(i,"와",j)
sum_sum(1,2,dic1="dic_result1", dic2="dic_result2")
dic1 와 dic_result1
dic2 와 dic_result2
args 관련해서 한가지 더 추가하고자 한다. tuple의 값들을 변수들에 담을때 *가 있으면 나머지 값들은 모두 해당 변수에 담긴다. 아래 출력 결과를 잘 확인해보자.
scores = (1, 2, 3, 4, 5, 6)
low, *others, high = scores
print(others)
scores = (1, 2, 3, 4, 5, 6)
llow, low, *others, high = scores
print(others)
[2, 3, 4, 5]
[3, 4, 5]
끝!
반응형
'Python > Study' 카테고리의 다른 글
python 기초 - 한줄 수식 정리 (for, if 등) + zip, *zip (0) | 2022.12.17 |
---|---|
python 기초 - class (부모, 자식 class, init, super) (2) | 2022.12.08 |
python 기초 - print 활용 (sep, end, r, f , file 등) (0) | 2022.11.30 |
python 기초 - 문자열, lower, upper, index, find, count (0) | 2022.11.29 |
python 기초 - if, for, while, break, continue (+한줄수식) (0) | 2022.11.29 |