Positional vs Keyword Arguments

mei 16, 2021
admin

Gerelateerd artikel:

  • Functions
  • Passing a function as an argument
  • Asterisks in Python

Transcript:

Laten we het eens hebben over de twee soorten argumenten die je kunt gebruiken bij het aanroepen van een functie:positionele argumenten en benoemde argumenten (a.k.a. trefwoordargumenten).

Positionele argumenten

Wanneer u de ingebouwde print functie aanroept, kunt u een willekeurig aantal argumenten positioneel doorgeven.We geven hier vier positionele argumenten door:

>>> print(2, 1, 3, 4)2 1 3 4

We noemen deze positionele argumenten omdat hun positie van belang is.De volgorde van deze argumenten is belangrijk: het eerste argument wordt eerst afgedrukt; het laatste wordt als laatste afgedrukt.

Keyword argumenten (a.k.a. named arguments)

De print functie accepteert ook een aantal argumenten als keyword argumenten.

De print-functie accepteert een optioneel sep-argument (dat standaard een spatieteken is).

>>> print(2, 1, 3, 4, sep=' ')2 1 3 4>>> print(2, 1, 3, 4)2 1 3 4>>> print(2, 1, 3, 4, sep='-')2-1-3-4>>> print(2, 1, 3, 4, sep=', ')2, 1, 3, 4

Dit sep-argument definieert het scheidingsteken dat moet worden afgedrukt tussen elk van de positionele argumenten die aan print worden gegeven.

Er is ook een optioneel end-sleutelwoordargument.Het end argument is standaard een newline karakter:

>>> print(2, 1, 3, 4, sep=', ', end='\n')2, 1, 3, 4

Maar we kunnen uitroeptekens in het end argument zetten (voor een newline) om uitroeptekens aan het eind af te drukken:

>>> print(2, 1, 3, 4, sep=', ', end='!!\n')2, 1, 3, 4!!

De volgorde van de trefwoord argumenten doet er niet toe

De volgorde van de print functie’s sep en end argumenten doet er eigenlijk niet toe.

>>> print(2, 1, 3, 4, end='!!\n', sep=', ')2, 1, 3, 4!!

De volgorde doet er niet toe omdat het geen positionele argumenten zijn: het zijn named arguments.

Positionele argumenten hebben komma’s tussen hun waarden.

>>> print(2, 1, 3, 4)2 1 3 4

Keyword argumenten (a.k.a. named arguments) hebben een naam en een gelijkteken naast die waarden en komma’s.

>>> print(2, 1, 3, 4, sep=',', end='!\n')2,1,3,4!

Keyword argumenten moeten na alle positionele argumenten komen.Buiten dat, de positie van keyword argumenten maakt helemaal niet uit: het is de naam die telt, niet de positie.

Het gebruik van keyword argumenten in plaats van positionele argumenten

Keyword argumenten zijn niet alleen nuttig voor functies die een willekeurig aantal positionele argumenten accepteren (zoals print).Je kunt trefwoordargumenten doorgeven aan zo ongeveer elke functie in Python.

Bijv. de ingebouwde functie sum accepteert een eerste argument:

>>> sum()10

Maar ook een tweede argument, dat standaard op nul staat:

>>> sum(, 0)10

Als we dat tweede argument veranderen in 1, zien we dat dit de startwaarde is voor de teruggezonden optelling:

>>> sum(, 1)11

Ik zou veel liever zien dat deze functie zo wordt aangeroepen:

>>> sum(, start=1)11

We geven één positioneel argument en één trefwoordargument door.

Dat start=1 werkt met sum omdat start de naam van dat argument is.In de documentatie voor de sum functie staat dat het tweede argument start heet:

>>> help(sum)Help on built-in function sum in module builtins:sum(iterable, /, start=0) Return the sum of a 'start' value (default: 0) plus an iterable of numbers When the iterable is empty, return the start value. This function is intended specifically for use with numeric values and may reject non-numeric types.

Dus wanneer je werkt met benoemde argumenten (ook wel trefwoordargumenten genoemd) is de naam van het argument daadwerkelijk van belang.Terwijl wanneer je werkt met positieargumenten, het de positie is die van belang is.

Samenvatting

Wanneer we een functie in Python aanroepen, kunnen we twee verschillende soorten argumenten doorgeven:

  1. positionele argumenten
  2. benoemde argumenten (a.k.a. keyword arguments)

Naamargumenten kunnen je code soms wat beschrijvender maken, omdat je een naam hebt gegeven aan een object waarvan het gebruik anders misschien niet duidelijk zou zijn, alleen al door zijn positie in een functie-aanroep.

Wil je meer Python-onderwerpen uitgelegd zien?

Hallo vriendelijke webbezoeker! 👋

Deze pagina is onderdeel van Python Morsels, een online Python vaardigheid-ontwikkelings service.

De beste manier om te leren is door te doen. In het geval van Python betekent dat Python code schrijven. Als je elke week je Python-vaardigheden wilt verbeteren, probeer dan Python Morsels uit door hieronder je e-mail in te vullen en een account aan te maken.

Python Morsels topics pagina’s zijn gratis en de eerste maand aan oefeningen is ook gratis. U hoeft geen betalingsgegevens in te vullen om u aan te melden.

U kunt uitleg vinden over vele andere Python onderwerpen door u hieronder aan te melden.

Door u aan te melden, gaat u akkoord met de Privacy Policy.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.