Python дефолтные параметры функции

Python Default Arguments: A Complete Guide (with Examples)

In almost every Python program, you are dealing with functions that take input, perform an action, and spit out an output. More often than not, it can be useful to include a default argument value in a function. If an input argument isn’t provided, the default value is used instead. And if the input value is provided, that’s going to be used in the function.

You can add default function parameters in Python by giving a default value for a parameter in the function definition using the assignment operator (=).

def greet(name="friend"): print("Hello,", name)

Now the default value for the name is “friend“.

If you call this function without a parameter:

You get the default greeting:

But if you call it with a name argument:

You get a personalized greeting using the name:

This is a complete guide to default values in Python.

You will learn what is a default argument and how to specify multiple default arguments in a function. Besides, you learn that you can use both regular arguments and default arguments in the same function.

Multiple Default Parameters in Python

Multiple default parameters in a function in Python

You can implement Python functions with multiple default parameters. This works similarly to how you can have functions with a number of regular parameters:

  • Specify the parameter name and assign it a default value.
  • Then add a comma and specify the next parameter.
def function(param1=value1, param2=value2, param3=value3, . ):

For instance, let’s create a function that asks for first name and last name. If these are not given, the default values are used instead:

def greet(firstname="Mr.", lastname="Who"): print("Hello,", firstname, lastname)

Here are some example calls for this function:

greet() greet("Jack") greet(lastname="Jones") greet("Matt", "Gibson")
Hello, Mr. Who Hello, Jack Who Hello, Mr. Jones Hello, Matt Gibson

Next, let’s take a look at how to add both default and regular parameters into a function call.

Mix Up Default Parameters and Regular Parameters

Mixing regular and default parameters in the same function call python

You can define a function with both default parameters and regular parameters in Python. When you call a function like this, the Python interpreter determines which variable is which based on whether it has the argument label or not.

def greet(greeting_word, firstname="Mr.", lastname="Who"): print(greeting_word, firstname, lastname) # Example calls: greet("Hi") greet("Hi", "Jack") greet("Hello", lastname="Jones") greet("Howdy", "Matt", "Gibson")
Hi Mr. Who Hi Jack Who Hello Mr. Jones Howdy Matt Gibson

Last but not least, let’s take a look at how default parameters are denoted in Python documentation.

Default Parameters in Python Documentation

If you read the Python documentation, you sometimes see functions that have default parameters in the function syntax.

For example, let’s take a look at the enumerate function documentation:

In this function, there is start=0 in the arguments.

This means that the enumerate function has a default argument start that is 0 by default. In other words, you can call the enumerate() function by specifying:

  • iterable parameter only.
  • start parameter to be something else than 0.

Conclusion

Today you learned about Python function default parameters.

You can provide default values for function parameters in Python. This can simplify your function calls and code.

Here is an example of a function with a default parameter value:

def greet(name="friend"): print("Hello,", name)

When you call this function without a parameter, it defaults to saying “Hello, friend”. When you call it with a name argument, it greets the person with that name.

Thanks for reading. I hope you enjoy it. Happy coding!

Further Reading

Источник

Аргументы по умолчанию в функциях Python

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

Функция без аргументов

Давайте определим простую функцию Python без аргументов:

def my_function(): print("This is a function without arguments")

Приведенный выше код определяет функцию my_function, которая не принимает аргументов и выводит строку.

Пример вызова функции my_function():

Результат работы my_function():

This is a function without arguments

Функция с явными аргументами

Теперь определим функцию Python, которой передается несколько значений для аргументов. Если вы не укажете значения для всех аргументов функции, то выведется сообщение об ошибке.

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

def func_args(integer1, integer2): result = integer1 + integer2 return result

Мы создаем функцию func_args(), которая принимает два аргумента: integer1 и integer2. Функция добавляет значения, переданные в аргументах, и возвращает результат вызываемой функции.

result = func_args(10, 20) print(result)

Приведенный выше код вызывает метод func_args() с двумя значениями параметров. В итоге на экран выводится сумма этих двух значений.

Теперь вызовем метод func_args() без передачи значений для аргументов:

result = func_args() print(result)

В результате на экран будет выведена следующая ошибка:

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 result = func_args() 2 print(result) TypeError: func_args() missing 2 required positional arguments: 'integer1' and 'integer2'

Ошибка возникает из-за того, что при вызове функции func_args() отсутствуют два обязательных аргумента integer1 и integer2. Поэтому нужно передать значения для аргументов integer1 и integer2 при вызове функции.

Теперь передадим значение одного из аргументов:

result = func_args(10) print(result)

После выполнения мы снова увидим сообщение об ошибке.

--------------------------------------------------------------------------- TypeError Traceback (most recent call last) in ----> 1 result = func_args(10) 2 print(result) TypeError: func_args() missing 1 required positional argument: 'integer2'

Теперь ошибка возникла из-за того, что значение аргумента integer2 отсутствует. Это означает, что нужно явно передавать значения для всех аргументов функции.

Функция с аргументами по умолчанию

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

def find_square(integer1=2): result = integer1 * integer1 return result

Данный код определяет функцию find_square() с одним аргументом по умолчанию integer1 со значением 2. Если вы вызываете find_square() со значением для аргумента integer1, функция find_square() вернет квадрат этого значения.

Если не передать ни одного значения функции find_square() integer1, то integer1 будет присвоено значение по умолчанию, и функция вернет квадрат 2.

Сначала вызовем метод find_square() со значением аргумента 10:

result = find_square(10) print(result)

При выполнении этого кода значение 10 перезаписывает значение по умолчанию 2 аргумента integer1 и функция возвращает квадрат 10.

Теперь вызовем функцию find_square() без какого-либо значения для аргумента argument1. В этом случае функция вернет 4, поскольку при отсутствии значения будет использоваться значение по умолчанию 2.

result = find_square() print(result)

Функция Python также может иметь несколько аргументов по умолчанию. Например, в следующем примере функция складывает целые числа, переданные в качестве аргументов. Если ни одно целое число не передано в функцию, аргументы по умолчанию принимают значения 2 и 4:

def add_ints(integer1=2, integer2=4): result = integer1 + integer2 return result

Вызовем функцию add_ints() без каких-либо параметров.

result = add_ints() print(result)

Поскольку мы не передали никаких значений для аргументов, то были сложены значения по умолчанию, то есть 2 и 4.

Источник

Читайте также:  Css find element with class
Оцените статью