Centr-dostavki.ru

Центр Доставки
8 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Передача функции в качестве аргумента другой функции в Python

Передача функции в качестве аргумента другой функции в Python

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

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

Значение отступа (пробела) в Python

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

Python использует определенный стиль отступов для определения кода, поскольку функции Python не имеют явных начальных или конечных фигурных скобок, указывающих начало и конец функции, они должны полагаться на этот отступ . Здесь мы возьмем простой пример с командой «print». Когда мы напишем функцию «print» прямо под def func 1 (): она покажет « ошибка отступа: ожидается блок с отступом ».

Учебник по функциям Python - определение, вызов, отступы и аргументы

Теперь, когда вы добавляете отступ (пробел) перед функцией «печать», он должен печататься как положено.

Учебник по функциям Python - определение, вызов, отступы и аргументы

По крайней мере, одного отступа достаточно, чтобы ваш код работал успешно. Но в качестве лучшей практики желательно оставить около 3-4 отступов для вызова вашей функции .

Также необходимо, чтобы при объявлении отступа вы сохраняли тот же отступ для всего остального кода . Например, на снимке экрана ниже, когда мы вызываем другое выражение «все еще в func1», и когда оно не объявлено прямо под первым оператором печати, будет отображаться ошибка отступа «unindent не соответствует ни одному другому уровню отступа».

Учебник по функциям Python - определение, вызов, отступы и аргументы

Теперь, когда мы применяем одинаковые отступы для обоих операторов и выравниваем их в одной строке, это дает ожидаемый результат.

Учебник по функциям Python - определение, вызов, отступы и аргументы

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

Читайте так же:
Как извлечь данные из разбитого телефона Samsung?

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

Когда этот код выполниться, он выведет следующий результат:

Следующий пример дает более четкую картину. Обратите внимание, что порядок параметров не имеет значения.

Когда этот код выполниться, он выведет следующий результат:

Создание локального проекта службы "Функции"

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

Выполните команду func init , как показано ниже, чтобы создать проект функций в папке с именем LocalFunctionProj с указанной средой выполнения:

Перейдите в папку проекта:

Эта папка содержит различные файлы проекта, в том числе файлы конфигурации local.settings.json и host.json. Файл local.settings.json может содержать секреты, скачанные из Azure, поэтому файл по умолчанию исключен из системы управления версиями в GITIGNORE-файле.

Добавьте функцию в проект с помощью приведенной ниже команды, где аргумент —name — уникальное имя функции (HttpExample), а аргумент —template позволяет указать триггер функции (HTTP).

Команда func new создает вложенную папку с именем функции. Эта папка содержит файл кода на выбранном для проекта языке и файл конфигурации function.json.

Проверка содержимого файла (дополнительно)

При необходимости можно сразу перейти к локальному запуску функции и просмотреть содержимое файла позже.

__init__.py

__init__.py содержит функцию Python main() , которая активируется в соответствии с конфигурацией в function.json.

Для триггера HTTP функция получает данные запроса в переменной req , как определено в файле function.json. req — это экземпляр класса azure.functions.HttpRequest. Возвращаемый объект, определенный как $return в файле function.json, — это экземпляр класса azure.functions.HttpResponse. Дополнительные сведения см. в статье Триггеры и привязки HTTP в службе "Функции Azure".

function.json

function.json — это файл конфигурации, который определяет входные и выходные данные для функции bindings , в том числе тип триггера.

Читайте так же:
Как найти путь с ускорением?

При необходимости можно изменить scriptFile , чтобы вызывать другой файл Python.

Для каждой привязки требуется направление, тип и уникальное имя. В HTTP-триггере есть входная привязка типа httpTrigger и выходная привязка типа http .

Область видимость и глобальные переменные

Концепт области (scope) в Пайтон такой же, как и в большей части языков программирования. Область видимости указывает нам, когда и где переменная может быть использована. Если мы определяем переменные внутри функции, эти переменные могут быть использованы только внутри это функции. Когда функция заканчиваются, их можно больше не использовать, так как они находятся вне области видимости. Давайте взглянем на пример:

Если вы запустите этот код, вы получите ошибку:

Это вызвано тем, что переменная определенна только внутри первой функции, но не во второй. Вы можете обойти этот момент, указав в Пайтоне, что переменная а – глобальная (global). Давайте взглянем на то, как это работает:

Этот код работает, так как мы указали Пайтону сделать а – глобальной переменной, а это значит, что она работает где-либо в программе. Из этого вытекает, что это настолько же хорошая идея, насколько и плохая. Причина, по которой эта идея – плохая в том, что нам становится трудно сказать, когда и где переменная была определена. Другая проблема заключается в следующем: когда мы определяем «а» как глобальную в одном месте, мы можем случайно переопределить её значение в другом, что может вызвать логическую ошибку, которую не просто исправить.

Использование лямбда-выражений с функциями высшего порядка в Python

1. Map ()

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

map (function,inputs)

Здесь мы используем лямбда-выражение как аргумент функции map, что после этого детально конвертируется в список.

2. Filter ()

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

3. Reduce ()

Более подробно почитать об этих функциях можно в статье Full Stack- разработчика, Rupesh Mishra. Он рассказывает как их использовать, описывая базовый синтаксис и снабжая все это примерами.

Читайте так же:
Где было изобретено первое колесо?

Примеры функций Python: вызов, отступы, аргументы и возвращаемые значения

Примеры функций Python: вызов, отступы, аргументы и возвращаемые значения

От автора: функции в Python применяются для использования кода в нескольких местах в программе, иногда их также называют методом или процедурами. Python предоставляет вам много встроенных функций, таких как print(), но также дает возможность создавать собственные функции.

В этом руководстве мы рассмотрим:

Как определить и вызвать функцию в Python

Значение отступа (пробела) в Python

Как функция возвращает значение?

Бесплатный курс «Python. Быстрый старт»

Получите курс и узнайте, как создать программу для перевода текстов на Python

Аргументы в функциях

Как определить и вызвать функцию в Python

Функция в Python определяется оператором «def», за которым следуют имя функции и круглые скобки.

Давайте определим функцию с помощью команды def func1(): и вызовем ее. Результатом функции будет «I am learning Python function».

Функция print func1() вызывает функцию def func1(): и выводит команду «I am learning Python function». В Python есть набор правил для определения функции.

Любые аргументы или входные параметры должны быть помещены в скобки

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

Код в каждой функции начинается с двоеточия (:) и должен иметь отступ (пробел)

Оператор return (выражение) исходит из функции, дополнительно передавая значение вызывающей стороне. Оператор return без аргументов совпадает с оператором return None.

Значение отступа (пробела) в Python

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

Python использует стиль отступов для определения кода, так как функции Python не имеют явных начальных или конечных фигурных скобок, указывающих начало и конец функции, для этого они должны полагаться на отступ. Здесь мы возьмем простой пример с командой «print». Когда мы напишем функцию «print» прямо под def func1(): она выдаст «indentation error: expected an indented block».

Читайте так же:
Как отключить синхронизацию контактов на iphone?

Затем, когда вы добавите отступ (пробел) перед функцией, она должна выполниться нормально.

По крайней мере, одного отступа достаточно, чтобы ваш код работал успешно. Но в качестве лучшей практики рекомендуется оставить около 3-4 отступов для вызова функции.

Также необходимо, чтобы при объявлении отступа вы сохраняли тот же отступ для всего остального кода. Например, на снимке экрана ниже, когда мы вызываем другой оператор «все еще в func1», и когда он не объявлен прямо под первым оператором, будет отображаться ошибка отступа «unindent does not match any other indentation level.»

Когда мы применим одинаковые отступы для обоих операторов, это даст ожидаемый результат.

Как функция возвращает значение?

Команда «return» в Python указывает, какое значение нужно вернуть вызывающей функции. Давайте рассмотрим это на следующем примере.

Шаг 1) Здесь — мы видим, когда функция не «возвращает». Например, нам нужен квадрат 4, и он должен дать ответ «16» при выполнении кода. Это то, что мы получим, когда мы просто используем код «print x*x». Но когда вы вызовите функцию «print square», она выдаст «None». Это потому, что когда вы вызываете функцию, рекурсия не происходит и опускается до конца функции. Python возвращает «None» из-за сбоя в конце функции.

Шаг 2) Чтобы сделать это более понятным, мы заменим команду вывода на команду присваивания. Давайте проверим вывод.

Когда вы запускаете команду «print square(4)», она на самом деле возвращает значение объекта, поскольку у нас нет какой-либо конкретной функции для запуска, она возвращает «None».

Шаг 3) Теперь мы увидим, как получить вывод, используя команду «return». Когда вы используете функцию «return» и выполняете код, он выдаст «16».

Шаг 4) Функции в Python сами по себе являются объектом, и объект имеет некоторое значение. Здесь мы увидим, как Python обрабатывает объект. При запуске команды «print square» возвращается значение объекта. Поскольку мы не передали ни одного аргумента, у нас нет какой-либо конкретной функции для запуска, поэтому она возвращает значение по умолчанию (0x021B2D30), которое является местоположением объекта. В практической программе на Python вам, вероятно, никогда не понадобится это делать.

Читайте так же:
Что нужно делать чтобы вернуть зрение полностью?

Аргументы в функциях

Аргумент — это значение, которое передается функции при ее вызове. Другими словами, на вызывающей стороне это аргумент, а на стороне функции — параметр. Давайте посмотрим, как работает аргумент Python.

Бесплатный курс «Python. Быстрый старт»

Получите курс и узнайте, как создать программу для перевода текстов на Python

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

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

Пример: x не имеет значений по умолчанию. Значения по умолчанию y = 0. Когда мы предоставляем только один аргумент при вызове функции умножения, Python назначает предоставленное значение для x, сохраняя значение y = 0. Следовательно, умножение x * y = 0.

Шаг 3) На этот раз мы изменим значение на y = 2 вместо значения по умолчанию y = 0, и функция вернет результат (4×2) = 8.

Шаг 4) Вы также можете изменить порядок передачи аргументов в Python. Здесь мы изменили порядок значений x и y на x = 4 и y = 2.

Шаг 5) Несколько аргументов также могут быть переданы в виде массива. Здесь в примере мы вызываем несколько аргументов (1,2,3,4,5), вызывая функцию (*args). Пример: мы объявили несколько аргументов как число (1,2,3,4,5) при вызове функции (*args); вывод будет (1,2,3,4,5).

В Python 2.7. перезагрузка функций не поддерживается. Перезагрузка функций — это возможность создавать несколько методов с одинаковым именем с разной реализацией. Перезагрузка функций полностью поддерживается в Python 3

Существует путаница между методами и функциями. Методы в Python связаны с экземплярами объекта, а функция — нет. Когда Python вызывает метод, он связывает первый параметр этого вызова с соответствующей ссылкой на объект. Проще говоря, автономная функция в Python — это «функция», тогда как функция, которая является атрибутом класса или экземпляра, является «методом».

голоса
Рейтинг статьи
Ссылка на основную публикацию
ВсеИнструменты
Adblock
detector