logo

Python에서 선택적 매개변수를 함수에 전달하는 방법은 무엇입니까?

Python에서는 특정 매개변수에 대한 기본값을 사용하여 함수를 정의할 때 인수가 사용자의 옵션으로 설정된다고 합니다. 사용자는 자신의 값을 전달하거나 지정된 기본값을 사용하도록 함수를 가장할 수 있습니다.

이러한 방식으로 사용자는 선택적 매개변수를 전달하거나 필수 매개변수만 전달하여 함수를 호출할 수 있습니다.



Python에서 선택적 매개변수를 전달하는 두 가지 주요 방법이 있습니다.

YouTube 비디오 VLC 저장
  • 키워드 인수를 사용하지 않고.
  • 키워드 인수를 사용합니다.

키워드 인수를 사용하지 않고 전달

키워드 인수를 사용하지 않고 전달할 때 주의해야 할 몇 가지 주요 사항은 다음과 같습니다.

  • 매개변수의 순서는 유지되어야 합니다. 즉, 함수를 호출하는 동안 매개변수가 함수에서 정의된 순서가 유지되어야 합니다.
  • 선택사항이 아닌 매개변수의 값은 전달되어야 합니다. 그렇지 않으면 오류가 발생합니다.
  • 기본 인수의 값은 전달되거나 무시될 수 있습니다.

다음은 이 개념을 설명하는 몇 가지 코드입니다.



예시 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


SQL의 다른 테이블에서 열을 선택하는 방법



# 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>

따라서 우리가 기억해야 할 한 가지는 모든 위치 인수가 전달된 후에 키워드 인수를 사용해야 한다는 것입니다. 따라서 이는 동일한 함수에 두 가지 방법으로 매개변수를 전달할 때 명심해야 할 중요한 사항입니다.