2014-01-28 3 views
0

У меня есть следующие функции:python функция в другой функции?

def second(first, a): 
    # i want to return the results of first(a) in this function. 

Я просто не могу понять, как я могу поставить значения в (первый (а)), не создавая другую функцию, или с помощью лямбда или любые другие модули? Любая помощь приветствуется.

+3

'вернуться первым (а)'? – falsetru

+0

«Поместите значения в' first (a) '?? Код «пример» кажется недостаточным .. в любом случае, объект должен быть [вызываемым] (http://stackoverflow.com/questions/111234/what-is-a-callable-in-python) для ответа на '() ', функции (и конструкторы) обычно имеют это свойство, но это не исключение. – user2864740

+0

Я думаю, что пользователь хочет знать, как ** называть ** эту функцию? – justhalf

ответ

0
>>> def first(a, *args, **kwargs): 
...  print((a, args, kwargs)) 
... 
>>> def second(func, a, *args, **kwargs): 
...  return func(a, *args, **kwargs) 
... 
>>> second(first, 'hello', 'world', do='something') 
('hello', ('world',), {'do': 'something'}) 
>>> second(int, 15) 
15 
>>> second(range, 2, 5) 
range(2, 5) 

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

0

Может быть, вы могли бы вызвать функцию first проходящее в качестве параметра a, а затем return значение, которое возвращается:

def second(first, a): 
    return first(a) 
Смежные вопросы