IT

함수 인수로서의 함수?

lottoking 2020. 8. 16. 21:31
반응형

함수 인수로서의 함수?


Python 함수가 다른 함수의 인수가 될 수 있습니까?

말하다 :

def myfunc(anotherfunc, extraArgs):
    # run anotherfunc and also pass the values from extraArgs to it
    pass

그래서 이것은 기본적으로 두 가지 질문입니다.

  1. 전혀 허용되지 않습니까?
  2. 다른 함수 내에서 함수를 어떻게 사용합니까? exec (), eval () 또는 이와 유사한 것을 가지고 있습니까? 필요한 엉망으로 만들 필요가 없습니다.

BTW, extraArgs는 anotherfunc의 인수 목록 / 튜플입니다.


Python 함수가 다른 함수의 인수가 될 수 있습니까?

예.

def myfunc(anotherfunc, extraArgs):
    anotherfunc(*extraArgs)

보다 구체적으로 ... 다양한 주장으로 ...

>>> def x(a,b):
...     print "param 1 %s param 2 %s"%(a,b)
...
>>> def y(z,t):
...     z(*t)
...
>>> y(x,("hello","manuel"))
param 1 hello param 2 manuel
>>>

다음은 *args(및 선택적으로) 사용하는 또 다른 방법입니다 **kwargs.

def a(x, y):
  print x, y

def b(other, function, *args, **kwargs):
  function(*args, **kwargs)
  print other

b('world', a, 'hello', 'dude')

많이

hello dude
world

주의 function, *args, **kwargs가이 순서대로하고 함수를 호출 함수 의 마지막 인수해야합니다 .


Python의 함수는 일류 객체입니다. 그러나 함수 정의 가 약간 벗어났습니다 .

def myfunc(anotherfunc, extraArgs, extraKwArgs):
  return anotherfunc(*extraArgs, **extraKwArgs)

물론 이것이 최초의 첫 번째 변수가 함수 인 다음 메소드를 구현하는 이유입니다.

  • map (function, iterable, ...)-iterable의 모든 항목에 함수를 적용하고 결과를 반환합니다.
  • filter (함수, iterable)-함수가 true를 반환하는 iterable 요소에서 목록을 구성합니다.
  • reduce (function, iterable [, initializer])-두 인수의 함수를 반복 가능한 반복 항목에서 반복 가능한 값을 단일 값으로 줄입니다.
  • 람다

  1. 예, 허용됩니다.
  2. 다른 것과 비슷한 함수를 사용합니다. anotherfunc(*extraArgs)

  1. 예. 입력 인수에 함수 호출을 포함하면 한 번에 두 개 이상의 함수를 호출 할 수 있습니다.

예를 들면 :

def anotherfunc(inputarg1, inputarg2):
    pass
def myfunc(func = anotherfunc):
    print func

myfunc를 호출하면 다음을 수행합니다.

myfunc(anotherfunc(inputarg1, inputarg2))

이것은 또 다른 함수의 반환 값을 인쇄합니다.

도움이 되셨기를 바랍니다!


def x(a):
    print(a)
    return a

def y(a):
    return a

y(x(1))

def x(a):
    print(a)
    return a

def y(func_to_run, a):
    return func_to_run(a)

y(x, 1)

더 적절한 샘플이라고 생각합니다. 이제 내가 궁금한 것은 다른 함수에 대한 인수 제출 내에서 사용할 함수를 코딩하는 방법이 있는지입니다. 나는 C ++에 있다고 믿지만 파이썬에는 확실하지 않습니다.


함수 내부 함수 : 함수를 매개 변수로도 사용할 수 있습니다.

즉, 함수의 출력이 객체에 대한 참조라고 말할 수 있습니다. 아래에서 내부 함수의 출력이 어떻게 외부 함수를 참조하는지 아래를 참조하세요.

def out_func(a):

  def in_func(b):
       print(a + b + b + 3)
  return in_func

obj = out_func(1)
print(obj(5))

결과는 .. 14

도움이 되었기를 바랍니다.

참고 URL : https://stackoverflow.com/questions/6289646/python-function-as-a-function-argument

반응형