파이썬 프로그램에서 함수를 정의할 때 목적은 함수의 인수에 다른 값을 제공하여 코드를 반복해서 실행하는 것입니다. 이 설계의 한 가지 문제는 해당 함수를 호출할 때마다 처리하려는 인수의 수를 확신할 수 없는 경우입니다. 여기서 **args 및 **kwargs라는 특수 인수가 필요합니다. 하나씩 살펴보겠습니다.
*인수
*args를 사용하면 가변 개수의 인수를 함수에 대한 입력으로 사용할 수 있습니다. 아래 예에서 우리는 일련의 숫자를 곱한 결과를 찾고 있습니다. 이 숫자의 개수는 함수를 호출할 때마다 다릅니다.
예시
def findproduct(*many_nums): result = 1 for num in many_nums: result = result * num print("Multiplication result:",result) findproduct(3,9) findproduct(2,11,10)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
('Multiplication result:', 27) ('Multiplication result:', 220)
**콰르그
다음으로, 기본적으로 키-값 쌍인 키워드 인수를 함수에 대한 인수로 전달하려는 시나리오가 있습니다.
여기서 다시 이러한 키워드 인수의 변수 수를 함수에 전달할 수 있습니다. 이러한 인수의 이름은 **kwargs입니다. 이러한 인수를 사용할 때 두 개의 별표가 있음을 유의하십시오. 실제로 이러한 키워드 인수는 여러 키-값 쌍을 보유하는 파이썬 사전으로 프로그램에 전달됩니다.
예시
def country_details(**state_info): print('\n\n') for k,v in state_info.items(): print("{} is {}".format(k,v)) country_details(StateName="Telangana", Capital="Hyderabad",Population=3400000) country_details(StateName="Andhra Pradesh", Capital="Amaravati",Population=1000000,ForestCoverage="30%")
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
StateName is Telangana Population is 3400000 Capital is Hyderabad StateName is Andhra Pradesh Population is 1000000 ForestCoverage is 30% Capital is Amaravati