파이썬: *args와 **kwargs는 무엇입니까?
def a_function(*args, **kwargs):
...
별표는 가변 길이 인수를 수신할 수 있는 매개변수를 나타냅니다. (
args
및 kwargs
이름은 중요하지 않습니다. 이는 단지 규칙일 뿐이며 각각 '인수' 및 '키워드 인수'를 나타냅니다. 적절한 매개변수 이름을 사용할 수 있습니다.)사용자가 취미를 공유할 수 있는 기능이 필요하지만 주어진 사용자가 얼마나 많은 취미를 갖게 될지 미리 알지 못한다고 가정해 보겠습니다.
def my_hobbies(*hobbies):
print("My hobbies: " + ", ".join(hobbies))
이제 함수는 하나 이상의 인수를 허용합니다.
>>> my_hobbies('reading', 'writing')
My hobbies: reading, writing
>>> my_hobbies('reading', 'writing', 'hiking', 'learning Python')
My hobbies: reading, writing, hiking, learning Python
편리하게도 유사한 별표 구문을 사용하여 튜플을 전달하여 함수를 호출할 수도 있습니다.
>>> some_hobbies = ('reading', 'writing', 'hiking', 'learning Python')
>>> my_hobbies(*some_hobbies)
My hobbies: reading, writing, hiking, learning Python
이제 사용자가 좋아하는 것을 다양한 범주로 공유할 수 있는 기능을 원하지만 주어진 사용자가 몇 개의 범주를 선택할지 미리 알 수 없다고 가정해 보겠습니다.
def my_faves(**favorites):
print("My favorite things...")
for category, fave in favorites.items():
print(f"{category}: {fave}")
우리의 함수는 이제 하나 또는 그 이상을 받아들입니다:
>>> my_faves(Color='green', Fruit='persimmon')
My favorite things...
Color: green
Fruit: persimmon
>>> my_faves(Season='winter', Language='Python', Website='dev.to')
My favorite things...
Season: fall
Language: Python
Website: dev.to
유사한 이중 별표 구문을 사용하여 사전을 전달하여 함수를 호출할 수도 있습니다.
>>> some_faves = {"Animal": "whale", "Summer Hobby": "hiking"}
>>> my_faves(**some_faves)
My favorite things...
Animal: whale
Summer Hobby: hiking
함수는 형식 매개변수, 가변 길이 매개변수 및 가변 길이 키워드 매개변수를 혼합하여 정의할 수 있습니다. 그렇게 할 때 정의에 다음 순서로 나타나야 합니다.
def a_function(arg, *args, **kwargs):
...
자세한 내용은 Python documentation 에서 찾을 수 있습니다.
Reference
이 문제에 관하여(파이썬: *args와 **kwargs는 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/adamlombard/python-what-are-args-and-kwargs-35co텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)