Может ли функция Python быть аргументом другой функции?
Сказать:
def myfunc(anotherfunc, extraArgs):
# run anotherfunc and also pass the values from extraArgs to it
pass
Итак, это в основном два вопроса:
- Это вообще разрешено?
- И если это так, как мне использовать эту функцию внутри другой функции? Нужно ли мне использовать exec (), eval () или что-то в этом роде? Никогда не приходилось с ними связываться.
Кстати, extraArgs - это список / кортеж аргументов другой функции.
Ответы:
Да.
Чтобы быть более конкретным ... с различными аргументами ...
источник
Вот еще один способ использования
*args
(и также необязательно)**kwargs
:Вывод
Обратите внимание , что
function
,*args
,**kwargs
должны быть в таком порядке и должно быть последними аргументами функции вызывающей функции.источник
Функции в Python - это первоклассные объекты. Но ваше определение функции немного не так .
источник
Конечно, именно поэтому python реализует следующие методы, в которых первым параметром является функция:
источник
anotherfunc(*extraArgs)
источник
Например:
Когда вы вызываете myfunc, вы делаете следующее:
Это напечатает возвращаемое значение anotherfunc.
Надеюсь это поможет!
источник
Функция внутри функции: мы также можем использовать функцию как параметр ..
Другими словами, мы можем сказать, что вывод функции также является ссылкой на объект, см. Ниже, как вывод внутренней функции ссылается на внешнюю функцию, как показано ниже.
результат будет .. 14
Надеюсь это поможет.
источник
источник
Думаю, это был бы более подходящий образец. Теперь меня интересует, есть ли способ закодировать функцию для использования в передаче аргументов другой функции. Я считаю, что это есть в C ++, но в Python я не уверен.
источник
Декораторы очень эффективны в Python, поскольку они позволяют программистам передавать функцию в качестве аргумента, а также могут определять функцию внутри другой функции.
Вывод
источник