Python Functie Argumenten

  1. Python-functieargumenten
  2. Python-functieargumenten

In deze sectie leert u Python-functieargumenten en de verschillende typen ervan, zoals standaardargumenten, trefwoordargumenten en willekeurige argumenten.

Python-functieargumenten

Argumenten van functie zijn de waarden waarop de bewerkingen binnen de functie worden uitgevoerd.

Wanneer u een functie definieert met een gespecificeerd aantal argumenten, moet u deze specifieke functie aanroepen door dat gespecificeerde aantal argumenten door te geven.

Als u meer of minder argumenten doorgeeft dan opgegeven in de functiedefinitie, krijgt u een TypeError.

Overweeg de onderstaande code:

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language('Python', 1)
language('Java', 2)
Programming language 1 is: Python
Programming language 2 is: Java

De functie language heeft twee argumenten. En als u de functie met een ander aantal argumenten aanroept, heeft u een foutmelding zoals hieronder:

>>> language('Python')

Traceback (most recent call last):
  File "<pyshell#7>", line 1, in <module>
    language('Python')
TypeError: language() takes exactly 2 arguments (1 given)

>>> language(2, 'Python', 'Java')

Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    language(2, 'Python', 'Java')
TypeError: language() takes exactly 2 arguments (3 given)

Python-functieargumenten

De vorige functie heeft een vast aantal argumenten. En functie kan ook variabele argumenten hebben.

Er zijn drie verschillende manieren om variabele argumenten aan een functie door te geven. Laten we ze nu allemaal doornemen.

Python-functie Standaardargumenten

In een functie kunnen argumenten standaardwaarden hebben die worden toegewezen in de functiedefinitie. Als de argumenten een standaardwaarde hebben, is het optioneel om waarden voor die argumenten door te geven:

Dit wordt aangetoond in het onderstaande voorbeeld:

def language(p = 'C++', n = 3):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language()
Programming language 3 is: C++

Je kon hier zien dat er geen argument is doorgegeven, maar het programma werkt nog steeds prima; omdat standaardwaarden voor de argumenten worden opgegeven. Als u waarden voor een van de argumenten doorgeeft, wordt de standaardwaarde overschreven.

Argumenten voor Python-functiezoekwoorden

Normaal gesproken geeft u meerdere argumenten door in dezelfde volgorde als gedefinieerd in de functiedefinitie. Maar als u trefwoordargumenten gebruikt, kan je de positie van de argumenten wijzigen.

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language(p = 'C++', n = 3)
Programming language 3 is: C++

Je kan ook de positie van argumenten wijzigen als u trefwoordargumenten gebruikt om waarden expliciet aan de specifieke argumenten toe te wijzen.

def language(p, n):
    """Function to print a message"""
    print("Programming language",n,"is:", p)
language(n = 3, p = 'C++')
Programming language 3 is: C++

Python-functie willekeurige argumenten

Willekeurige argumenten worden gebruikt als vooraf niet bekend is hoeveel argumenten moeten worden doorgegeven.

Een willekeurige functie wordt aangegeven met een asterisk * voor de naam van het argument. Het geeft argumenten zonder trefwoord door als tuple aan de functie.

def language(*args):
    """Demo function of arbitray arguments"""
    for i in args:
        print("Programming language:", i)

language("Java", "C++", "R", "Kotlin")
Programming language: Java
Programming language: C++
Programming language: R
Programming language: Kotlin

De functie wordt aangeroepen door meerdere argumenten door te geven. Deze argumenten worden omgezet in een tuple voordat de functie daadwerkelijk wordt aangeroepen.

Dubbele asterisk **kwargs is het idioom om de willekeurige trefwoordargumenten door te geven aan de functie. Bijvoorbeeld,

def language(**kwargs):
    """Demo funciton of arbitrary keyword arguments"""
    for a in kwargs:
        print(a, kwargs[a])
        
language(country="NL", code="+31")
country NL
code +31

Argumenten in dit trefwoord willekeurige argumenten worden doorgegeven als een woordenboek met keys trefwoorden en values bijbehorende waarden. Net als in het bovenstaande voorbeeld worden de doorgegeven argumenten omgezet in een woordenboek {'country':"NL", 'code':"+31"}