Python Args und Kwargs

Python args und kwargs leicht gemacht

*args und **kwargs mögen beängstigend erscheinen, aber die Wahrheit ist, dass sie nicht so schwer zu verstehen sind und die Macht haben, Ihren Funktionen viel Flexibilität zu verleihen.

Lesen Sie den Artikel Python *args und **kwargs leicht gemacht für eine tiefere Einführung.

Args und Kwargs

*args und **kwargs ermöglichen es Ihnen, eine undefinierte Anzahl von Argumenten und Schlüsselwörtern zu übergeben, wenn Sie eine Funktion aufrufen.

# Define a function that accepts any number of positional and keyword arguments
def some_function(*args, **kwargs):
    pass

# Call with any number of positional arguments
some_function(arg1, arg2, arg3)

# Call with any number of keyword arguments
some_function(key1=arg1, key2=arg2, key3=arg3)

# Call with both positional and keyword arguments
some_function(arg, key1=arg1)

# Or call with no arguments at all
some_function()

Python-Konventionen

Die Wörter *args und **kwargs sind Konventionen. Sie werden nicht vom Interpreter erzwungen, gelten aber in der Python-Community als gute Praxis.

args

Sie können auf die Argumente über die Variable args zugreifen:

# *args collects positional arguments into a tuple
def some_function(*args):
    print(f'Arguments passed: {args} as {type(args)}')

# Pass multiple arguments - they'll be collected into args tuple
some_function('arg1', 'arg2', 'arg3')
Arguments passed: ('arg1', 'arg2', 'arg3') as <class 'tuple'>
Quiz

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

In welchen Datentyp sammelt *args Argumente?
A. Eine Liste
B. Ein Tupel
C. Ein Dictionary
D. Eine Menge

kwargs

Schlüsselwörter werden über die Variable kwargs aufgerufen:

# **kwargs collects keyword arguments into a dictionary
def some_function(**kwargs):
    print(f'keywords: {kwargs} as {type(kwargs)}')

# Pass keyword arguments - they'll be collected into kwargs dict
some_function(key1='arg1', key2='arg2')
keywords: {'key1': 'arg1', 'key2': 'arg2'} as <class 'dict'>
Quiz

Melden Sie sich an, um dieses Quiz zu beantworten und Ihren Lernfortschritt zu verfolgen

In welchen Datentyp sammelt **kwargs Argumente?
A. Eine Liste
B. Ein Tupel
C. Ein Dictionary
D. Eine Menge