728x90
020. 매개변수(parameter) 종류와 순서
예를 보자
def personal_info(**kwargs): # info 뒤 ( ) 안이 매개변수
for key, value in kwargs.items():
print(key, ': ', value, sep = '')
y = {'name': '홍길동', 'age': 30, 'address': '서울시 용산구 이촌동'}
personal_info(**y)
결과값
name: 홍길동
age: 30
address: 서울시 용산구 이촌동
*설명
맨 아랫줄 인수 personal_info(**y)에 바로 윗줄 y변수의 정보가 들어가고 **이게 붙어서
키워드 매개변수로써 첫째줄의 def의 매개변수 자리에 들어가서 함수 def personal_info가 작동한다
- def : 함수를 만들 때 사용하는 예약어
- 매개변수(parameter) : 함수에 입력으로 전달된 값을 받는 변수
함수 이름 뒤 괄호 안의 것 - 인수(arguements) : 함수를 호출할 때 전달하는 입력값
사용법
함수를 정의하고 거기에 함수 밖에서 보내올 데이터(변수)를 받을 매개변수 타입을 지정하고, 작성한 함수에 밖에서 변수(인수)를 지정하면 작동된다.
종류
세가지는 혼용가능
- 고정 매개변수(parameter) : args = 1 or True
- 가변 매개변수(parameter) : *args
- 키워드 매개변수(parameter) : **kwargs
1)고정 매개변수(parameter)
매개변수 값을 지정하여 변동이 없게하는 매개변수
여러개 써도 순서는 상관x
ex) a=1, man=True
아래에서 a=3,b=7이 매개변수를 지정한 것으로 고정매개변수
def add(a, b):
return a+b
result = add(a=3, b=7) # a에 3, b에 7을 전달
print(result)
결과값
10
숫자 뿐 아니라, True나 False도 미리 지정해두고 사용가능
man = True
def say_myself(name, old, man=True):
print("나의 이름은 %s 입니다." % name)
print("나이는 %d살입니다." % old)
if man:
print("남자입니다.")
else:
print("여자입니다.")
say_myself("박응용", 27)
say_myself("박응용", 27, True)
결과값
나의 이름은 박응용입니다.
나이는 27살입니다.
남자입니다.
2)가변 매개변수(parameter)
매개변수 앞에 *을 하나 붙인 것이며, 여러 개의 입력값을 입력가능. 튜플로 출력됨.
값이 몇 개가 될지 모를 때 사용하며, 입력값을 전부 모아서 Tuple로 만듬
def add_many(*args):
result = 0
for i in args:
result = result + i
return result
result = add_many(1,2,3)
print(result)
결과값 : 6
result = add_many(1,2,3,4,5,6,7,8,9,10)
print(result)
결과값 : 55
3)키워드 매개변수(parameter)
매개변수 앞에 **을 붙인 것이며, 딕셔너리로 출력됨
def print_kwargs(**kwargs):
print(kwargs)
print_kwargs(a=1)
결과값 : {'a': 1}
print_kwargs(name='foo', age=3)
결과값 : {'age': 3, 'name': 'foo'}
※ args는 매개변수(arguments)의 약자로, 관례적으로 자주 사용
※ kwargs는 keyword arguments의 약자이며, args와 마찬가지로 관례적으로 사용한다.
사용순서
함수에서 매개변수를 종류별로 사용할 때, 순서를 지키지않으면 에러가 발생한다
고정 매개변수 - 가변 매개변수 - 키워드 매개변수
def parameter(args=1, *args, **kwargs)
728x90
반응형
'Python > review of learning' 카테고리의 다른 글
[Python] libpng warning: iCCP: known incorrect sRGB profile (0) | 2021.12.26 |
---|---|
[Python] import os 현재 파일 위치 반환 메소드 (0) | 2021.12.26 |
[Python] 019. if __name__ == __main__ 이해 (0) | 2021.09.28 |
[Python] 018. 출력 : 파일 쓰기 - 하나씩 해본 것들 (0) | 2021.09.25 |
[Python] 017. 객체지향 언어란 - 특징 - (0) | 2021.09.24 |