Довільні аргументи

Середній рівень Python для розробників

Jasmin Ludolf

Curriculum Manager

Обмеження визначених аргументів

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

# Using six arguments print(average(15, 29, 4, 13, 11, 8))
TypeError: average() takes 1 positional argument but 6 were given
Середній рівень Python для розробників

Довільні позиційні аргументи

  • Рядки документації пояснюють, як користуватися власними функціями

  • Довільні аргументи дають змогу приймати будь-яку кількість аргументів

# Дозволити будь-яку кількість позиційних (неіменованих) аргументів
def average(*args):
    # Код функції залишається тим самим
  • Загальноприйнята назва: *args

  • Забезпечує різні варіанти використання з очікуваним результатом!

Середній рівень Python для розробників

Використання довільних позиційних аргументів

# Виклик average з шістьма позиційними аргументами
print(average(15, 29, 4, 13, 11, 8))
13.33
Середній рівень Python для розробників

Args створюють один ітерабельний об'єкт

  • *: Об'єднує аргументи в один ітерабельний об'єкт (кортеж)
# Обчислення для кількох списків
print(average(*[15, 29], *[4, 13], *[11, 8]))
13.33
Середній рівень Python для розробників

Довільні іменовані аргументи

# Використати довільні іменовані аргументи
def average(**kwargs):

average_value = sum(kwargs.values()) / len(kwargs.values()) rounded_average = round(average_value, 2) return rounded_average
  • Довільні іменовані аргументи: **kwargs

  • keyword=value

Середній рівень Python для розробників

Використання довільних іменованих аргументів

# Виклик average з шістьма іменованими аргументами
print(average(a=15, b=29, c=4, d=13, e=11, f=8))
13.33
# Виклик average з одним іменованим аргументом
print(average(**{"a":15, "b":29, "c":4, "d":13, "e":11, "f":8}))
13.33
  • Кожна пара ключ–значення у словнику стає іменованим аргументом та його значенням!
Середній рівень Python для розробників

Kwargs створюють один ітерабельний об'єкт

# Виклик average з трьома групами іменованих аргументів
print(average(**{"a":15, "b":29}, **{"c":4, "d":13}, **{"e":11, "f":8}))
13.33
Середній рівень Python для розробників

Давайте потренуємось!

Середній рівень Python для розробників

Preparing Video For Download...