Python에서 선택적 매개변수를 함수에 전달하는 방법은 무엇입니까?
Python에서는 특정 매개변수에 대한 기본값을 사용하여 함수를 정의할 때 인수가 사용자의 옵션으로 설정된다고 합니다. 사용자는 자신의 값을 전달하거나 지정된 기본값을 사용하도록 함수를 가장할 수 있습니다.
이러한 방식으로 사용자는 선택적 매개변수를 전달하거나 필수 매개변수만 전달하여 함수를 호출할 수 있습니다.
Python에서 선택적 매개변수를 전달하는 두 가지 주요 방법이 있습니다.
- 키워드 인수를 사용하지 않고.
- 키워드 인수를 사용합니다.
키워드 인수를 사용하지 않고 전달
키워드 인수를 사용하지 않고 전달할 때 주의해야 할 몇 가지 주요 사항은 다음과 같습니다.
- 매개변수의 순서는 유지되어야 합니다. 즉, 함수를 호출하는 동안 매개변수가 함수에서 정의된 순서가 유지되어야 합니다.
- 선택사항이 아닌 매개변수의 값은 전달되어야 합니다. 그렇지 않으면 오류가 발생합니다.
- 기본 인수의 값은 전달되거나 무시될 수 있습니다.
다음은 이 개념을 설명하는 몇 가지 코드입니다.
예시 1:
파이썬3
# Here b is predefined and hence is optional.> def> func(a, b> => 1098> ):> > return> a> +> b> print> (func(> 2> ,> 2> ))> # this 1 is represented as 'a' in the function and> # function uses the default value of b> print> (func(> 1> ))> |
산출:
4 1099
예시 2: 문자열을 전달할 수도 있습니다.
파이썬3
# Here string2 is the default string used> def> fun2(string1, string2> => 'Geeks'> ):> > print> (string1> +> string2)> # calling the function using default value> fun2(> 'GeeksFor'> )> # calling without default value.> fun2(> 'GeeksFor'> ,> 'Geeks'> )> |
산출:
GeeksForGeeks GeeksForGeeks
키워드 인수로 전달
함수가 정의되면 매개변수는 데이터 유형 키워드 이름 형식으로 작성됩니다. 따라서 Python은 값 전달을 위해 키워드 이름을 사용하여 함수를 호출하는 메커니즘을 제공합니다. 이는 프로그래머가 매개변수가 전달되는 순서나 순서를 배우지 않도록 하여 프로그래머에게 도움이 됩니다.
우리가 기억해야 할 몇 가지 중요한 사항은 다음과 같습니다.
- 이 경우 값 전달 순서를 유지할 필요가 없습니다.
- 전달된 키워드 이름과 선언된 키워드 이름 간에 차이가 없어야 합니다.
아래는 이를 구현하기 위한 코드입니다.
파이썬3
# Here string2 is the default string used> def> fun2(string1, string2> => 'Geeks'> ):> > print> (string1> +> string2)> # Thiscan be a way where no order is needed.> fun2(string2> => 'GeeksFor'> , string1> => 'Geeks'> )> # since we are not mentioning the non-default argument> # so it will give error.> fun2(string2> => 'GeeksFor'> )> |
산출:
보시다시피 위의 예에서는 어떤 순서도 유지할 필요가 없습니다. 또한 선택적 매개변수만 전달하려고 하면 오류가 발생하는 것을 볼 수 있습니다. 이는 선택적 매개변수에 기본값이 있으므로 생략할 수 있지만 필수 매개변수(위의 경우 string1)를 생략할 수 없기 때문에 발생합니다. 따라서 누락된 필수 인수 1개라는 플래그와 함께 오류가 표시됩니다.
이 예는 위 주제에 대한 더 많은 통찰력을 제공합니다.
파이썬3
def> func(a, b, c> => 'geeks'> ):> > print> (a,> 'type is'> ,> type> (a))> > print> (b,> 'type is'> ,> type> (b))> > print> (c,> 'type is'> ,> type> (c))> # The optional parameters will not decide> # the type of parameter passed.> # also the order is maintained> print> (> 'first call'> )> func(> 2> ,> 'z'> ,> 2.0> )> # below call uses the default> # mentioned value of c> print> (> 'second call'> )> func(> 2> ,> 1> )> # The below call (in comments) will give an error> # since other required parameter is not passed.> # func('a')> print> (> 'third call'> )> func(c> => 2> , b> => 3> , a> => 'geeks'> )> |
산출:
first call 2 type is z type is 2.0 type is second call 2 type is 1 type is geeks type is third call geeks type is 3 type is 2 type is
따라서 기본적으로 Python 기능 호출은 필요한 수의 기능 매개변수가 전달되었는지 여부만 확인합니다.
다음은 사용자가 주어진 예방 조치와 함께 위에서 설명한 두 가지 방법으로 인수를 전달하려고 시도하는 경우를 보여줍니다.
파이썬3
def> comp(a, b> => 2> ):> > if> (a print('first parameter is smaller') if(a>b): print('두 번째 매개변수가 더 작습니다') if(a == b): print('둘 다 동일한 값입니다.') print('첫 번째 호출') comp(1) print( '두 번째 호출') comp(2, 1) print('세 번째 호출') comp(b=1, a=-1) print('네 번째 호출') comp(-1, b=0 )> |
산출:
first call first parameter is smaller second call second parameter is smaller third call first parameter is smaller fourth call first parameter is smaller
따라서 우리가 기억해야 할 한 가지는 모든 위치 인수가 전달된 후에 키워드 인수를 사용해야 한다는 것입니다. 따라서 이는 동일한 함수에 두 가지 방법으로 매개변수를 전달할 때 명심해야 할 중요한 사항입니다.