Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python의 *args 및 **kwargs


파이썬 프로그램에서 함수를 정의할 때 목적은 함수의 인수에 다른 값을 제공하여 코드를 반복해서 실행하는 것입니다. 이 설계의 한 가지 문제는 해당 함수를 호출할 때마다 처리하려는 인수의 수를 확신할 수 없는 경우입니다. 여기서 **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