Willekeurige argumenten

Python voor gevorderde ontwikkelaars

Jasmin Ludolf

Curriculum Manager

Beperkingen van gedefinieerde argumenten

def average(values):
    """Find the mean in a sequence of values and round to two decimal places."""

    average_value = sum(values) / len(values)
    rounded_average = round(average_value, 2)
    return rounded_average

# Zes argumenten gebruiken print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Python voor gevorderde ontwikkelaars

Willekeurige positionele argumenten

  • Docstrings leggen uit hoe je eigen functies gebruikt

  • Willekeurige argumenten laten functies een willekeurig aantal argumenten accepteren

# Sta elk aantal positionele (niet-keyword) argumenten toe
def average(*args):
    # Functiecode blijft hetzelfde
  • Conventionele naam: *args

  • Biedt flexibiliteit met voorspelbare uitkomsten!

Python voor gevorderde ontwikkelaars

Willekeurige positionele argumenten gebruiken

# average aanroepen met zes positionele argumenten
print(average(15, 29, 4, 13, 11, 8))
13.33
Python voor gevorderde ontwikkelaars

Args vormen één iterable

  • *: Zet argumenten om in één iterable (tuple)
# Berekenen over meerdere lijsten
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
Python voor gevorderde ontwikkelaars

Willekeurige keyword-argumenten

# Gebruik willekeurige keyword-argumenten
def average(**kwargs):

average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
  • Willekeurige keyword-argumenten: **kwargs

  • keyword=value

Python voor gevorderde ontwikkelaars

Willekeurige keyword-argumenten gebruiken

# average aanroepen met zes keyword-args
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# average aanroepen met één keyword-arg
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
  • Elk key-valuepaar in de dictionary wordt een keyword-argument met die waarde!
Python voor gevorderde ontwikkelaars

Kwargs vormen één iterable

# average aanroepen met drie keyword-arg dicts
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Python voor gevorderde ontwikkelaars

Laten we oefenen!

Python voor gevorderde ontwikkelaars

Preparing Video For Download...