【发布时间】:2012-11-26 19:39:44
【问题描述】:
我刚开始学习Python,发现我可以将一个函数作为另一个函数的参数传递。现在,如果我调用foo(bar()),它将不会作为函数指针传递,而是作为使用函数的返回值传递。调用 foo(bar) 将传递函数,但这样我无法传递任何额外的参数。如果我想传递一个调用bar(42) 的函数指针怎么办?
我希望能够重复一个函数,而不管我传递给它的参数是什么。
def repeat(function, times):
for calls in range(times):
function()
def foo(s):
print s
repeat(foo("test"), 4)
在这种情况下,函数 foo("test") 应该被连续调用 4 次。
有没有办法做到这一点而不必将“测试”传递给repeat 而不是foo?
【问题讨论】:
-
旁注:这些不是“函数指针”!在 Python 中,函数是对象。
标签: python callback function-pointers