함수를 호출할 때 데이터 전송은 항상 주 함수와 호출 함수 간에 분리될 수 없습니다. 데이터 전송과 함께 매개변수도 전송 됩니다. 매개변수의 목적은 데이터를 함수에 전달하는 것입니다.
예를 들어, 주스기를 구입하면 사과를 추가하면 수박 주스가 나옵니다. 매개 변수는 호출을 통해 대상에 전달됩니다. 함수이고 호출된 함수는 결과를 반환합니다.
다음으로 매개변수 전달에 대해 알아봅시다.
함수 매개변수 전달을 배우기 위해서는 먼저 형식 매개변수와 실제 매개변수가 무엇인지 이해해야 합니다. 위의 예를 계속해서 살펴보겠습니다. 주서기에 과일을 담는 컨테이너가 있고, 그러면 주서기가 작동을 시작합니다. 형식 매개변수와 실제 매개변수는 비슷한 관계를 갖습니다.
형식 매개변수는 함수를 정의할 때 괄호 안에 정의된 매개변수이며, 실제 매개변수 는 함수 호출 시 전달되는 매개변수입니다. 형식 매개변수 대신 실제 매개변수를 사용합니다.
다음 예를 살펴보십시오.
>>>A=30>>>defget_salary(일):...급여=일*300...print(급여)...>>>get_salary(A)9000
위의 예에서 함수가 생성될 때 사용된 매개변수인 days는 함수를 호출할 때 실제 매개변수이며 실제로 함수에 가져올 매개변수입니다.
함수를 생성할 때 괄호 안에 여러 형식 매개변수를 정의할 수 있으며, 매개변수의 수와 위치는 생성된 매개변수와 일치해야 합니다.
우리가 생성한 함수에 2개의 형식 매개변수가 있지만 이를 호출할 때 실제 매개변수는 1개만 사용하면 어떻게 될까요?
>>>defget_message(주소,번호):...print(주소,번호)...>>>get_message('쑤저우')Traceback(최근calllast):파일<stdin>,line1,in<모듈>TypeError:get_message ()missing1requiredpositionalgument:'숫자'
실제 매개변수의 수가 형식 매개변수의 수와 같지 않으면 예외가 발생하며 이는 특히 필요한 위치 매개변수 수가 누락되었음을 의미합니다.
매개변수의 위치가 일치하지 않으면 두 가지 오류가 발생합니다. 하나는 오류를 직접 보고하는 것입니다. 매개변수를 전달할 때 매개변수의 특성에 따라 다른 유형을 정의하므로 데이터 유형 오류는 예외를 발생시킵니다.
또 다른 오류는 전달된 매개변수의 데이터 유형은 정확하지만 위치가 잘못되어 잘못된 출력 결과가 발생한다는 것입니다.
프로그램의 가독성을 높이기 위해 함수 호출 시 키워드 인수를 사용할 수도 있습니다.
용기의 부피를 계산하여 키워드 인수에 대해 알아봅니다.
>>>defvolume(length,width,height):...volume=length*width*height...print('볼륨은: ',volume)...>>>volume(length=20,width= 30, 높이=3) 볼륨: 1800
키워드 매개변수를 사용하면 변수를 정의하는 과정을 절약하고, 함수 호출 시 매개변수에 직접 값을 할당한 후 함수에 전달하고 최종적으로 결과를 반환할 수 있다. 이 전송 방법에서는 매개변수 위치의 차이가 출력 결과에 영향을 미치지 않습니다.
함수를 정의할 때 함수 매개변수의 초기값을 정의할 수 있으므로, 함수 호출 시 실제 매개변수가 주어지지 않으면 함수는 기본 매개변수를 사용하게 됩니다.
다음 예를 살펴보십시오.
>>>defvolume(length=100,width=100,height=10):...volume=length*width*height...print(volume)...>>>volume()#실제 매개변수를 제공하지 않습니다. 실제 매개변수가 제공되면 기본 매개변수 100000>>>volume(10,10,10)#이 사용되며 실제 매개변수가 전달되고 출력 결과는 1000이 됩니다.
위의 예를 통해 함수 생성 시 기본값을 지정했다면, 함수 사용 시 실제 파라미터를 지정하지 않으면 자동으로 기본 파라미터가 사용됩니다.
Python에서는 함수의 매개변수 수가 변경될 수 있는데, 이는 매개변수의 수가 불확실할 수 있음을 의미합니다. 변수 매개변수에는 두 가지 유형이 있는데, 하나는 매개변수 앞에 *를 추가하는 것이며, 다른 하나는 매개변수 앞에 **를 추가하는 것입니다. 변수 매개변수는 튜플 형태로 전달되는데, 전달 시에는 딕셔너리 형태로 전달되는 방식을 주로 소개합니다.
다음 예를 살펴보십시오.
>>>defadd_number(*번호):...add_num=0...foriinnumber:...add_num+=i...print(add_num)...>>>add_number(1,2,3,4,5 )15
가변 매개변수를 사용할 때 이러한 매개변수는 튜플에 저장되어 함수에 전달되므로 이러한 매개변수를 사용하려면 순회 또는 인덱스 값을 사용할 수 있습니다.
함수의 매개변수 전달은 대략 동일합니다. 함수를 잘 배우고 싶다면 매개변수 전달을 올바르게 익히는 것이 함수 사용에 있어서 매우 중요합니다.