Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters

Python Functie-argumenten onder de knie krijgen

Ontdek hoe je functies ontwerpt die variabele aantallen argumenten accepteren in Python – met defaults, keywords en willekeurige parameters voor schonere, meer aanpasbare code.

Video: Python Functie-argumenten: Positionele, Keywords en Default

Argumenten

In het user-defined function onderwerp hebben we functies definiëren en aanroepen behandeld. Een call die de verwachte signature mismatched, genereert een fout. Bijvoorbeeld:

def greet(name, msg):
    """Deze functie groet de persoon met het meegegeven bericht."""
    print("Hallo", name + ", " + msg)
greet("Monica", "Goedemorgen!")

Output

Hallo Monica, Goedemorgen!

De greet() functie accepteert twee parameters. Het aanroepen met het correcte aantal argumenten draait soepel; anders emiteert de interpreter een TypeError met een duidelijke boodschap.

>>> greet("Monica") # slechts één argument
TypeError: greet() missing 1 required positional argument: 'msg'
>>> greet() # geen argumenten
TypeError: greet() missing 2 required positional arguments: 'name' and 'msg'

Variabele Functie-argumenten

Python biedt flexibele manieren om een variabel aantal argumenten te accepteren. Drie gangbare patronen worden hieronder behandeld.

Python Default Argumenten

Parameters kunnen standaardwaarden krijgen met de toewijzingsoperator (=). Het volgende voorbeeld demonstreert hoe een optioneel bericht default naar "Goedemorgen!":

def greet(name, msg="Goedemorgen!"):
    """Deze functie groet de persoon met het meegegeven bericht.
    Als het bericht niet meegegeven wordt, default het naar "Goedemorgen!"."""
    print("Hallo", name + ", " + msg)
greet("Kate")
greet("Bruce", "Hoe gaat het?")

Output

Hallo Kate, Goedemorgen!
Hallo Bruce, Hoe gaat het?

In deze definitie is name verplicht, terwijl msg optioneel is. Wanneer een default-argument aanwezig is, moeten alle daaropvolgende parameters ook defaults hebben; anders ontstaat een SyntaxError.

def greet(msg = "Goedemorgen!", name): pass
SyntaxError: non-default argument follows default argument

Python Keyword Argumenten

Python laat aanroepers argumenten op naam specificeren, wat positionele volgorde-flexibiliteit mogelijk maakt. Dezelfde greet() functie kan als volgt aangeroepen worden:

# 2 keyword arguments
greet(name = "Bruce", msg = "Hoe gaat het?")
# 2 keyword arguments (out of order)
greet(msg = "Hoe gaat het?", name = "Bruce")
# 1 positioneel, 1 keyword argument
greet("Bruce", msg = "Hoe gaat het?")

Het mixen van positionele en keyword-argumenten is toegestaan mits alle positionele argumenten voorafgaan aan keyword-argumenten; anders resulteert een SyntaxError.

greet(name="Bruce","Hoe gaat het?")
SyntaxError: non-keyword arg after keyword arg

Python Willekeurige Argumenten

Wanneer het aantal argumenten op ontwerptijd onbekend is, gebruik een asterisk (*) om ze als tuple te vangen:

def greet(*names):
    """Groet elke naam in de meegegeven tuple."""
    for name in names:
        print("Hallo", name)
greet("Monica", "Luke", "Steve", "John")

Output

Hallo Monica
Hallo Luke
Hallo Steve
Hallo John

Binnen de functie is names een tuple met alle doorgegeven argumenten, die vervolgens geïtereerd of verwerkt kan worden zoals nodig.

Python

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Lambda Functies: Een praktische gids voor anonieme functies
  5. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  6. Python-generators: efficiënte iteratie en geavanceerde use cases
  7. Python-closures uitgelegd: hoe geneste functies variabelen vangen
  8. Python-decorators beheersen: functies verbeteren met expert-technieken
  9. Python's strip()-methode beheersen: Uitgebreide handleiding & praktische voorbeelden
  10. Python lambda-functies beheersen: praktische voorbeelden & best practices
  11. Python abs()-functie: absolute waarden berekenen voor getallen & complexe getallen