Что произойдёт, если не передать значение аргумента с дефолтным значением?

Если при вызове функции не передать значение аргумента, у которого задано значение по умолчанию (default value), то этот аргумент примет значение, указанное в определении функции. Функция выполнится, используя это дефолтное значение.

Если не передать значение аргумента, имеющего значение по умолчанию, то Python использует это значение по умолчанию.

Пример:


def greet(name="World"):
    print(f"Hello, {name}!")

greet()  # Выведет "Hello, World!"
greet("Alice") # Выведет "Hello, Alice!"
    

В этом примере, если при вызове функции greet() не передать аргумент name, то он примет значение по умолчанию "World". Если же аргумент name передать, то он перезапишет значение по умолчанию.

Важные моменты:

  • Значения по умолчанию вычисляются только один раз при определении функции. Это может привести к неожиданному поведению при использовании изменяемых типов данных (списки, словари) в качестве значений по умолчанию.
  • Аргументы со значениями по умолчанию должны следовать за аргументами без значений по умолчанию. Например, def func(a, b=1, c=2): – корректно, а def func(a=1, b): – вызовет ошибку.

В целом, использование значений по умолчанию делает код более читаемым и гибким, позволяя вызывать функцию с разным количеством аргументов.

0