suchen
HeimBackend-EntwicklungPython-TutorialWas ist der Unterschied zwischen „*args' und „kwargs' in Python-Funktionsparametern?

What's the Difference Between `*args` and `kwargs` in Python Function Parameters?

Enthüllung der Bedeutung von (Doppelstern) und (Stern) in Funktionsparametern*

In Python Funktion Mit args und *kwargs bezeichnete Parameter dienen als vielseitige Anpassungsmechanismen beliebige Argumente.

Positionsargumente mit *args entpacken

Der Parameter *args sammelt alle Positionsargumente, die über die vordefinierten hinausgehen, in einem Tupel. Zum Beispiel:

def foo(*args):
    for arg in args:
        print(arg)

Diese Funktion kann eine beliebige Anzahl von Positionsargumenten akzeptieren, wie zum Beispiel:

foo(1)  # Output: 1
foo(1, 2, 3)  # Output: 1 2 3

Zusammensetzen von Schlüsselwortargumenten mit kwargs**

Andererseits sammelt **kwargs alle Schlüsselwortargumente in einem Wörterbuch.

def bar(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

Der Aufruf dieser Funktion mit Schlüsselwortargumenten ergibt:

bar(name='John', age=30)  # Output: name John, age 30

Zusammenspiel von args und kwargs*

Beide Redewendungen können kombiniert werden, um eine Mischung aus fest und variabel zu ermöglichen Argumente:

def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

Diese Funktion kann wie folgt aufgerufen werden:

foo(123, 'a', 'b', apple='red')  # Output: 123 ('a', 'b') None {'apple': 'red'}

Zusätzliche Anwendungsfälle

  • Entpacken Argumentlisten: Das *-Idiom kann zum Entpacken von Argumentlisten beim Aufruf von a verwendet werden Funktion:
def foo(bar, lee):
    print(bar, lee)

baz = [1, 2]
foo(*baz)  # Output: 1 2
  • Extended Iterable Unpacking (Python 3): * kann auf der linken Seite einer Aufgabe verwendet werden, um eine Liste zu erhalten:
first, *rest = [1, 2, 3, 4]
# first = 1
# rest = [2, 3, 4]
  • Nur-Schlüsselwort-Argumente (Python 3 ):Funktionen können Schlüsselwortargumente mithilfe der folgenden Syntax einschränken:
def func(arg1, arg2, arg3, *, kwarg1, kwarg2):
    pass

Diese Funktion erfordert drei Positionsargumente und eine beliebige Anzahl von Schlüsselwortargumenten nach *.

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen „*args' und „kwargs' in Python-Funktionsparametern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Python: Ein tiefes Eintauchen in Zusammenstellung und InterpretationPython: Ein tiefes Eintauchen in Zusammenstellung und InterpretationMay 12, 2025 am 12:14 AM

PythonusesahybridmodelofCompilation und Interpretation: 1) thepythonInterPreterCompilessourceCodeIntoplatform-unintenpendentBytecode.2) Thepythonvirtualmachine (PVM) ThenexexexexecthisByTeCode, BalancingeAnsewusewithperformance.

Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?Ist Python eine interpretierte oder eine kompilierte Sprache, und warum ist es wichtig?May 12, 2025 am 12:09 AM

Pythonisbothinterpreted und kompiliert.1) ItscompiledToByteCodeForPortabilityAcrossplatform.2) thytecodeTheninterpreted, und das ErlaubnisfordyNamictyPingandRapidDevelopment zulässt, obwohl es sich

Können Sie Listen mit einer Schleife in Python verkettet?Können Sie Listen mit einer Schleife in Python verkettet?May 10, 2025 am 12:14 AM

Ja, youcanconcatenatelistenusexoopinpython.1) useSeparateloopsforeachListtoAppendItemStoaresultlist.2) UsEnestedLooptoeratevermultiplelistsforamoreConciseApproach.3) ApplicationLogicduringCatenation, LikeFilteringeAntevernumber,

Concattenate listet python auf: Verwenden, erweitert () und mehrConcattenate listet python auf: Verwenden, erweitert () und mehrMay 10, 2025 am 12:12 AM

ThemostEfficienceMethodsforcatenatlistListsinpythonare: 1) Theextend () methodeforin-placemodification, 2) iTertools.chain () Formemoryefficiencywithlargedatasets

Python Loops: Beispiele und Best PracticesPython Loops: Beispiele und Best PracticesMay 10, 2025 am 12:05 AM

Pythonloopsincludeforandwhileloops, Withforloopsidealforsequences und Whileloopsforcondition-basiertesRepetition.BestPracticesinvolve: 1) Verwenden von listCompraResionsForSimplansformationen, 2) Einbeziehung von ForenIndex-Valuepairs, 3) optingforransformationen

Pythons Ausführungsmodell: Kompiliert, interpretiert oder beides?Pythons Ausführungsmodell: Kompiliert, interpretiert oder beides?May 10, 2025 am 12:04 AM

Pythonisbothcompiledandinterpreted.WhenyourunaPythonscript,itisfirstcompiledintobytecode,whichisthenexecutedbythePythonVirtualMachine(PVM).Thishybridapproachallowsforplatform-independentcodebutcanbeslowerthannativemachinecodeexecution.

Ist Python Linie für Linie ausgeführt?Ist Python Linie für Linie ausgeführt?May 10, 2025 am 12:03 AM

Python ist nicht streng line-by-line-Ausführung, sondern wird basierend auf dem Interpreter-Mechanismus optimiert und bedingte Ausführung. Der Interpreter konvertiert den Code in Bytecode, der von der PVM ausgeführt wird, und kann konstante Ausdrücke vorkompilieren oder Schleifen optimieren. Das Verständnis dieser Mechanismen trägt dazu bei, den Code zu optimieren und die Effizienz zu verbessern.

Was sind die Alternativen zur Verkettung von zwei Listen in Python?Was sind die Alternativen zur Verkettung von zwei Listen in Python?May 09, 2025 am 12:16 AM

Es gibt viele Methoden, um zwei Listen in Python zu verbinden: 1. Verwenden Sie Operatoren, die in großen Listen einfach, aber ineffizient sind; 2. Verwenden Sie die Erweiterungsmethode, die effizient ist, die ursprüngliche Liste jedoch ändert. 3.. Verwenden Sie den operator =, der sowohl effizient als auch lesbar ist; 4. Verwenden Sie die Funktion iterertools.chain, die Speichereffizient ist, aber zusätzlichen Import erfordert. 5. Verwenden Sie List Parsing, die elegant ist, aber zu komplex sein kann. Die Auswahlmethode sollte auf dem Codekontext und den Anforderungen basieren.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Nordhold: Fusionssystem, erklärt
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

MinGW – Minimalistisches GNU für Windows

MinGW – Minimalistisches GNU für Windows

Dieses Projekt wird derzeit auf osdn.net/projects/mingw migriert. Sie können uns dort weiterhin folgen. MinGW: Eine native Windows-Portierung der GNU Compiler Collection (GCC), frei verteilbare Importbibliotheken und Header-Dateien zum Erstellen nativer Windows-Anwendungen, einschließlich Erweiterungen der MSVC-Laufzeit zur Unterstützung der C99-Funktionalität. Die gesamte MinGW-Software kann auf 64-Bit-Windows-Plattformen ausgeführt werden.

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Leistungsstarke integrierte PHP-Entwicklungsumgebung