Функции

Обновлено: 2024-03-12
3 мин

Функция - это структура, которую вы определяете. Вы можете решать, есть ли у них аргументы или нет. Вы можете добавить аргументы в виде ключевых слов и аргументы по умолчанию.

Функция - это блок кода, который начинается с ключевого слова def, имени функции и двоеточия. Вот простой пример:

def a_function():
    print("You just created a function!")

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

def add(a, b):
    result = a + b
    return result

В этом примере мы создали функцию add, которая принимает два аргумента a и b и возвращает их сумму.

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

Пример:

result = add(2, 3)
print(result) # выводит 5

Пустая функция (заглушка)

Иногда, когда вы пишете код, вы просто хотите написать определения функций, не вставляя в них никакого кода.

 def empty_function():
        pass

Все функции что-то возвращают. Если не указать ей, что она должна что-то вернуть, то она вернет None.

Аргументы с ключевыми словами

Функции также могут принимать аргументы в виде ключевых слов! На самом деле они могут принимать как обычные аргументы, так и аргументы с ключевыми словами. Значит, вы можете указать, какие ключевые слова какими являются, и передать их. Вы видели такое поведение в предыдущем примере.

 def keyword_function(a=1, b=2):
        return a+b

keyword_function(b=4, a=5) # 9

Вы также могли бы вызвать эту функцию без указания ключевых слов. Эта функция также демонстрирует концепцию аргументов по умолчанию. Каким образом? Ну, попробуйте вызвать функцию вообще без аргументов!

keyword_function() # 3

*args и **kwargs

Также функции могут принимать переменное число аргументов или аргументы с произвольными именами (как в словарях). Это делается с помощью операторов * и **.

def myfunc(*args):
    for arg in args:
        print(arg)

Эта функция принимает переменное число аргументов и выводит их все на экран.

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

def myfunc(a, b=10):
    result = a + b
    return result

В этом примере мы создали функцию myfunc, которая принимает два аргумента: a и b (по умолчанию равный 10). Если при вызове функции не указан второй аргумент, то он будет равен 10.

Функции также могут принимать аргументы с ключевыми словами, которые представляют собой пары “ключ-значение”. Эти аргументы позволяют явно указать, какое значение должно быть использовано для каждого параметра функции. Для определения аргументов с ключевыми словами используются двойные звездочки (**).

def print_values(**kwargs):
    for key, value in kwargs.items():
        print(key, value)

print_values(name='John', age=25, city='New York')

В этом примере функция print_values() принимает произвольное количество аргументов с ключевыми словами и выводит их на экран. При вызове функции передаются аргументы с ключевыми словами name, age, и city, и функция выводит их значения.

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

Ресурсы: