Python의 다른 함수에 Kwargs 전달
Python은 프로그램의 함수에 전달할 수 있는 두 가지 유형의 인수를 나열합니다. 키워드가 아닌 인수( **args
) 및 키워드 인수(**kwargs
).
일반적으로 파이썬 함수는 올바른 수의 인수로 호출해야 합니다. 함수가 두 개의 인수를 예상하는 경우 두 개만 전달해야 합니다.
이 기사에서는 키워드 인수를 사용하는 방법과 키워드 인수를 다른 함수에 전달하는 방법에 대해 설명합니다.
Python의 키워드 인수
일반적으로 인수는 정보를 함수로 전달합니다. 키워드 인수는 함수에 인수를 전달하는 데 사용할 수 있는 한 가지 방법입니다.
특히 Keyword Arguments를 사용하면 key = value
구문으로 인수를 보낼 수 있습니다. 다음 예를 살펴보겠습니다.
def keyword_function(fname, lname, age):
print("first name is " + fname)
keyword_function(fname="Anne", lname="Steaven", age=27)
이 예에서는 keyword_function
이라는 함수를 정의했습니다. fname
, lname
및 age
라는 세 개의 인수를 전달합니다.
따라서 이러한 인수는 프로그램에서 함수를 호출할 때 각 인수에 대해 키와 값 쌍을 사용하기 때문에 키워드 인수로 전송됩니다.
출력:
위 출력에서 fname
인수를 전달하는 명령문을 인쇄합니다.
Python에서 **kwargs
로 함수 호출
주로 키워드 인수는 여러 인수를 알 수 없을 때 사용할 수 있습니다. 이 경우 함수 정의에서 매개변수 이름 앞에 두 개의 별표(**
)를 추가하십시오.
함수에 **kwargs
매개변수가 있는 경우 가변 개수의 키워드 인수를 사전으로 허용합니다.
다음 예를 생각해 보십시오.
def animals(**kwargs):
print(kwargs)
animals(name1="Rabbit", name2="Dog", name3="Monkey")
위 코드에는 animals
라는 함수가 있습니다. 세 개의 인수를 키워드 인수로 사용하는 함수 호출인 **kwargs
라는 매개변수가 있습니다.
출력:
두 쌍의 값과 키가 있는 사전으로 결과를 볼 수 있습니다. kwargs
인수는 관례입니다.
따라서 매개변수 이름으로 의미 있는 이름을 사용할 수 있습니다. 마찬가지로 이것은 **kwargs
매개변수를 사용하여 함수를 호출하는 방법입니다.
Python을 사용하여 kwargs
를 다른 함수에 전달
암호:
def info(**kwargs):
x = dict(name="shen", age=27, degree="SE")
pass_func(**x)
def pass_func(**kwargs):
for i in kwargs:
print(i, kwargs[i])
info()
위의 코드를 사용하여 이름
, 나이
및 학위
와 같은 사람에 대한 정보를 인쇄합니다. 이 프로그램은 dict
메소드를 선언하는 변수 x
를 포함하는 다른 함수에 kwargs
를 전달합니다.
매개변수 없이 정의된 함수 info
의 예. 함수 info
는 3개의 키-값 쌍을 정의하는 변수 x
를 선언했으며 일반적으로 키-값 쌍은 Python의 사전 형식으로 정의됩니다.
결과적으로 dict
메서드는 키와 값의 쌍을 지정합니다. kwargs
unpack 인수는 사전 유형으로 선언되므로 이 예제에서는 dict
메소드를 사용할 수 있습니다.
그런 다음 kwargs
인수를 전달하는 pass_func
라는 또 다른 함수가 있습니다. 이 함수에는 kwargs
인수를 인쇄하는 for
루프가 포함되어 있으며 그 후에 kwargs
기능을 info
기능에 전달하여 x
를 인쇄할 수 있습니다.
따라서 x
변수에 kwargs
인수를 사용하여 pass_func
를 호출합니다. 마지막으로 pass_func
함수에서 info
함수를 호출합니다.
출력:
결론
기사 전체에서 kwargs
를 다른 함수에 전달하는 방법에 중점을 두었습니다. kwargs
인수는 각 인수에 대해 정의된 매개변수 없이 여러 변수를 가져올 수 있습니다.
kwargs
인수를 함수에 전달할 때 매개변수 이름 **kwargs
와 함께 이중 별표를 사용해야 합니다. kwargs
를 다른 함수에 전달할 때 먼저 두 개의 별표가 있는 매개 변수를 만든 다음 해당 함수를 다른 함수에 목적으로 전달할 수 있습니다.
Nimesha is a Full-stack Software Engineer for more than five years, he loves technology, as technology has the power to solve our many problems within just a minute. He have been contributing to various projects over the last 5+ years and working with almost all the so-called 03 tiers(DB, M-Tier, and Client). Recently, he has started working with DevOps technologies such as Azure administration, Kubernetes, Terraform automation, and Bash scripting as well.