반응형
Python에서 함수를 호출하는 동안 선택적 매개 변수를 함수에 전달하는 방법이 있습니까? 그리고 함수 정의에 "선택적 매개 변수가 전달 된 경우에만"을 기반으로하는 일부 코드가 있습니다.
해결 방법
먼저 특별한 형식 매개 변수 구문 *
을 사용할 수 있습니다. 함수 정의에 단일 *
가 앞에 오는 형식 매개 변수가있는 경우 Python은 해당 매개 변수를 선행 형식 매개 변수와 일치하지 않는 위치 매개 변수 (튜플)로 채 웁니다. 함수 정의에 **
가 앞에 오는 형식 매개 변수가있는 경우 Python은 해당 매개 변수를 선행 형식 매개 변수와 일치하지 않는 키워드 매개 변수로 채 웁니다 (dict). 함수의 구현은 원하는 정렬의 "선택적 매개 변수"에 대해 이러한 매개 변수의 내용을 확인할 수 있습니다.
예를 들어 다음은 두 개의 위치 매개 변수 x1
및 x2
를 취하고 "optional"이라는 다른 키워드 매개 변수를 찾는 함수 opt_fun
입니다.
>>> def opt_fun(x1, x2, *positional_parameters, **keyword_parameters):
... if ('optional' in keyword_parameters):
... print 'optional parameter found, it is ', keyword_parameters['optional']
... else:
... print 'no optional parameter, sorry'
...
>>> opt_fun(1, 2)
no optional parameter, sorry
>>> opt_fun(1,2, optional="yes")
optional parameter found, it is yes
>>> opt_fun(1,2, another="yes")
no optional parameter, sorry
둘째, 호출자가 절대 사용하지 않는 None
과 같은 일부 값의 기본 매개 변수 값을 제공 할 수 있습니다. 매개 변수에이 기본값이 있으면 호출자가 매개 변수를 지정하지 않은 것입니다. 매개 변수에 기본값이 아닌 값이 있으면 호출자로부터 온 것입니다.
참조 페이지 https://stackoverflow.com/questions/14017996
반응형
'파이썬' 카테고리의 다른 글
파이썬 주어진 클래스의 계층 구조에있는 모든 기본 클래스를 나열 하시겠습니까? (0) | 2021.01.30 |
---|---|
파이썬 NumPy로 유클리드 거리를 어떻게 계산할 수 있습니까? (0) | 2021.01.30 |
파이썬 Pylint의 "너무 적은 공개 방법"메시지는 무엇을 의미합니까? (0) | 2021.01.30 |
파이썬 Flask는 선택적 URL 매개 변수를 가질 수 있습니까? (0) | 2021.01.30 |
파이썬 Reset a column's MultiIndex levels (0) | 2021.01.29 |
댓글