我对在Python中使用partial
函数还比较陌生。下面是一段简单的代码,我希望它能打印出结果,但不知怎么的,它没有打印任何内容,或者说显示执行firstfunc
:
from functools import partial
class zebra(object):
def firstfunc(self, a, b, c):
res = 3*a + 55*b + c
print(res)
return res
def partial_func(self, a, c):
return partial(self.firstfunc, b = 2)
myzebra = zebra()
alist = [1, 2, 3, 4]
blist = [7, 8, 9, 11]
map(myzebra.partial_func, alist, blist)
调用
myzebra.partial_func()
,它返回一个partial function对象。如果您希望它也被称为,请在myzebra.partial_func()
中这样做:或者使用
map()
中的lambda来调用它:请注意,因为您将
b
作为关键字参数,所以您还必须将至少c
作为关键字参数传递。你知道吗map()
不会递归调用对象;只调用最外层的对象。你知道吗在Python 2中,代码现在可以工作:
在Python3中,
map()
缓慢地循环,因此需要对其进行迭代才能执行:相关问题 更多 >
编程相关推荐