> 백엔드 개발 > 파이썬 튜토리얼 > Python의 *args 및 **kwargs 이해

Python의 *args 및 **kwargs 이해

Susan Sarandon
풀어 주다: 2025-01-16 22:16:13
원래의
545명이 탐색했습니다.

Understanding *args and **kwargs in Python

파이썬에서 *args와 **kwargs의 놀라운 활용: 유연한 함수의 비밀

Python에서 *args**kwargs는 함수가 다양한 수의 인수를 허용하는 유연한 함수를 생성하기 위한 강력한 도구입니다. 이는 함수에 전달될 인수 수를 미리 알 수 없을 때 특히 유용합니다.


*args이란 무엇인가요?

*args 함수는 위치 인수를 원하는 수만큼 허용할 수 있습니다. 이러한 매개변수는 튜플에 저장됩니다.

예:

<code class="language-python">def print_numbers(*args):
    for number in args:
        print(number)

print_numbers(1, 2, 3, 4, 5)</code>
로그인 후 복사

출력:

<code>1
2
3
4
5</code>
로그인 후 복사

여기서 숫자를 원하는 만큼 전달할 수 있으며 모두 인쇄됩니다. 인수가 전달되지 않으면 args은 빈 튜플이 됩니다.


**kwargs이란 무엇인가요?

**kwargs 함수는 원하는 수의 키워드 인수를 허용합니다. 이러한 매개변수는 사전에 저장되며, 여기서 키는 매개변수 이름이고 값은 해당 값입니다.

예:

<code class="language-python">def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="Alice", age=25, city="New York")</code>
로그인 후 복사

출력:

<code>name: Alice
age: 25
city: New York</code>
로그인 후 복사

여기에서는 원하는 만큼의 키-값 쌍을 전달할 수 있습니다. 키워드 인수가 전달되지 않으면 kwargs은 빈 사전이 됩니다.


*args**kwargs

을 조합하여 사용하세요.

같은 기능에서 *args**kwargs을 모두 사용할 수 있습니다. 이를 통해 위치 인수와 키워드 인수를 모두 처리할 수 있습니다.

예:

<code class="language-python">def describe_person(*args, **kwargs):
    print("Attributes:")
    for arg in args:
        print(f"- {arg}")

    print("\nDetails:")
    for key, value in kwargs.items():
        print(f"{key}: {value}")

describe_person("Friendly", "Helpful", name="Bob", age=30, city="Boston")</code>
로그인 후 복사

출력:

<code>Attributes:
- Friendly
- Helpful

Details:
name: Bob
age: 30
city: Boston</code>
로그인 후 복사

여기서 *args는 위치 매개변수(예: "Friendly" 및 "Helpful")를 수집하고 **kwargs는 키워드 매개변수(예: name="Bob" 및 age=30)를 수집합니다.


간단한 메모리 규칙

  1. 위치 인수의 가변 개수를 전달해야 하는 경우 *args를 사용하세요.
  2. 키워드 인수의 가변 개수를 전달해야 하는 경우 **kwargs를 사용하세요.
  3. 함수 시그니처의 순서는 항상 다음과 같아야 합니다.
    • 일반 위치 매개변수
    • *args
    • 기본 키워드 매개변수
    • **kwargs

초보자를 위한 실제 사례

예시 1: 숫자 추가 기능

<code class="language-python">def add_numbers(*args):
    total = sum(args)
    print(f"The sum is: {total}")

add_numbers(1, 2, 3, 4)
add_numbers(10, 20)</code>
로그인 후 복사

출력:

<code>The sum is: 10
The sum is: 30</code>
로그인 후 복사

예시 2: 이름을 부르며 인사하기

<code class="language-python">def greet_people(**kwargs):
    for name, greeting in kwargs.items():
        print(f"{greeting}, {name}!")

greet_people(Alice="Hello", Bob="Hi", Charlie="Hey")</code>
로그인 후 복사

출력:

<code>Hello, Alice!
Hi, Bob!
Hey, Charlie!</code>
로그인 후 복사

예 3: 쇼핑 목록에서 *args**kwargs

결합
<code class="language-python">def shopping_list(*items, **prices):
    print("Items to buy:")
    for item in items:
        print(f"- {item}")

    print("\nPrices:")
    for item, price in prices.items():
        print(f"{item}: ${price}")

shopping_list("Apples", "Bananas", Apples=2, Bananas=1.5, Oranges=3)</code>
로그인 후 복사

출력:

<code>Items to buy:
- Apples
- Bananas

Prices:
Apples: 
Bananas: .5
Oranges: </code>
로그인 후 복사

결론

*args**kwargs을 사용하면 Python 함수를 더욱 동적이고 유연하게 만들 수 있습니다. 이는 입력 수가 다양할 수 있는 프로그램으로 작업할 때 특히 유용합니다. 소규모 프로젝트부터 시작하여 이러한 기능을 사용해 보면 매우 편리하다는 것을 알게 될 것입니다!

위 내용은 Python의 *args 및 **kwargs 이해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿