【发布时间】:2014-01-23 20:34:52
【问题描述】:
函数map(func,iterable) 可以很容易地应用于普通函数,但是如果我想将a_method 应用于实例列表,我该怎么做?我知道列表推导可以很快做到这一点,但仍然想看看是否存在一种功能性的方式并且感觉像 Python 一样。
class cls(object):
def __init__(self,val):
self.val=val
def clstest(self,val):
return self.val==val
a=cls(9)
b=cls(18)
c=cls(19)
lst=[a,b,c]
然后以下工作:list(map(repr,lst))返回
['<__main__.Cls object at 0x00000000070EDB70>',
'<__main__.Cls object at 0x00000000070EDBE0>',
'<__main__.Cls object at 0x00000000070EDE80>']
,但list(map(clstest(10),lst)) 会有错误信息:
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-165-f10396f98b58> in <module>()
----> 1 list(map(clstest,lst))
NameError: name 'clstest' is not defined
更新:更正我在定义类时的错误。错误消息仍然存在。
【问题讨论】:
-
首先,
def cls(object)定义了一个名为cls的函数,它接受一个名为object的参数。如果你想要一个继承自object的类,你应该使用class cls(object)。其次,在您的map中尝试cls.clstest
标签: python functional-programming