def lite(a,b,c):
#...
def big(func): # func = callable()
#...
#main
big(lite(1,2,3))
Run Code Online (Sandbox Code Playgroud)
这该怎么做?
以什么方式将带参数的函数传递给另一个函数?
Ski*_*ick 38
为什么不这样做:
big(lite, (1, 2, 3))
Run Code Online (Sandbox Code Playgroud)
?
然后你可以这样做:
def big(func, args):
func(*args)
Run Code Online (Sandbox Code Playgroud)
类似的问题通常通过两种方式解决:
\n\n参见示例:
\n\n#!/usr/bin/python\n\ndef lite(a,b,c):\n return "%r,%r,%r" % (a,b,c)\n\ndef big(func): # func = callable()\n print func()\n\ndef big2(func): # func = callable with one argument\n print func("anything")\n\n\ndef main():\n param1 = 1\n param2 = 2\n param3 = 3\n\n big2(lambda x: lite(param1, param2, param3))\n\n def lite_with_params():\n return lite(param1,param2,param3)\n\n big(lite_with_params)\n\nmain()\n
Run Code Online (Sandbox Code Playgroud)\n