I only just started learning Python and found out that I can pass a function as the parameter of another function. Now if I call foo(bar())
it will not pass as a function pointer but the return value of the used function. Calling foo(bar)
will pass the function, but this way I am not able to pass any additional arguments. What if I want to pass a function pointer that calls bar(42)
?
I want the ability to repeat a function regardless of what arguments I have passed to it.
def repeat(function, times):
for calls in range(times):
function()
def foo(s):
print s
repeat(foo("test"), 4)
In this case the function foo("test")
is supposed to be called 4 times in a row.
Is there a way to accomplish this without having to pass "test" to repeat
instead of foo
?