Как вызвать функцию в Python

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

Содержание

Определение функции

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

Базовый синтаксис функции имеет следующий вид:

def function_name():
    # То, что должна делать эта функция

Пример реальной функции выглядит вот так:

def learn_to_code():
    print("You can learn to code for free on Pythonist")

Назначение данной функции — выводить в консоль следующий текст: «You can learn to code for free on Pythonist».

Но чтобы данная функция заработала, ее нужно вызвать.

От редакции Pythonist: подробнее о создании функций читайте в статье «Функции и их аргументы в Python 3».

Как вызвать функцию в Python

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

Синтаксис вызова функции выглядит так:

function_name()

То есть, чтобы вызвать функцию, которую мы определили ранее, нам нужно написать Learn_to_code():

def learn_to_code():
    print("You can learn to code for free on Pythonist")

learn_to_code()

# Результат:
# You can learn to code for free on Pythonist

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

Вызов функции внутри самой функции.

Можно заметить, что функция не выводит текст в консоль, так как была вызвана внутри блока функции.

Вызов функции после ее определения

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

Как вызвать вложенную функцию

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

Вот пример вложенной функции:

def learn_to_code():
    print("You can learn to code for free on freeCodeCamp")

    def learn_what_language():
        print("You can learn any programming language on the freeCodeCamp YouTube channel")

Функция Learn_what_language является частью функции Learn_to_code, так как находится внутри ее.

Если вы наберете learn_to_code() и запустите код, будет вызвана только внешняя функция learn_to_code:

В редакторе видно, что имя вложенной функции затемнено

Как видите, вызывается только внешняя функция.

Чтобы также вызвать внутреннюю функцию, нужно добавить learn_what_language(). Но вот где именно?

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

Но без вызова внешней функции это также не сработает:

Вы можете заметить, что внутренняя функция learn_what_language() по-прежнему не делает то, что мы хотим.

Чтобы данный код работал правильно, необходимо вызвать обе функции следующим образом:

def learn_to_code():
    print("You can learn to code for free on freeCodeCamp")

    def learn_what_language():
        print("You can learn any programming language on the freeCodeCamp YouTube channel")
    
    learn_what_language()

learn_to_code()

"""
Результат:
You can learn to code for free on freeCodeCamp
You can learn any programming language on the freeCodeCamp YouTube channel
"""
Правильный вызов вложенной функции

Теперь все работает должным образом.

Заключение

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

Продолжайте учиться и кодить!

Перевод статьи Colade Chris «How to Call a Function in Python – Def Syntax Example».