함수 인수로서의 함수?
Python 함수가 다른 함수의 인수가 될 수 있습니까?
말하다 :
def myfunc(anotherfunc, extraArgs):
# run anotherfunc and also pass the values from extraArgs to it
pass
그래서 이것은 기본적으로 두 가지 질문입니다.
- 전혀 허용되지 않습니까?
- 다른 함수 내에서 함수를 어떻게 사용합니까? 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])-두 인수의 함수를 반복 가능한 반복 항목에서 반복 가능한 값을 단일 값으로 줄입니다.
- 람다
- 예, 허용됩니다.
- 다른 것과 비슷한 함수를 사용합니다.
anotherfunc(*extraArgs)
- 예. 입력 인수에 함수 호출을 포함하면 한 번에 두 개 이상의 함수를 호출 할 수 있습니다.
예를 들면 :
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
'IT' 카테고리의 다른 글
Docker 컨테이너에서 호스트 데이터베이스에 액세스 (0) | 2020.08.16 |
---|---|
선언 된 속성에 해당 인스턴스 변수가 필요에? (0) | 2020.08.16 |
AES를 사용하는 Android 암호화 / 복호화 (0) | 2020.08.16 |
Unix에서 tar 명령의 출력을 끄려면 어떻게해야합니까? (0) | 2020.08.16 |
C ++ : 빈 클래스의 개체 크기는 얼마입니까? (0) | 2020.08.16 |