我有以下代码:
import functools
import random
import inspect
def myfirst(a, b):
return a + b
def mysecond(c, d):
return c - d
def returnAPartial():
myrand = random.randrange(0,2)
if myrand == 1:
return functools.partial(myfirst, 1)
else:
return functools.partial(mysecond, 2)
我将它加载到 python interactive 中并运行:
myfunc = returnAPartial()
我想(以编程方式)检查 myfunc 是否是 myfirst 或 mysecond 函数的部分应用(不是通过计算,这个例子有点做作)到目前为止我已经使用了 inspect.getmembers()但我找不到合适的属性来检查?
请您参考如下方法:
partial objects有一个 func 属性,这是你想要的:
myfunc = returnAPartial()
print myfunc.func # <function mysecond at 0x10c918488>
