我可以在Python中使用类来代替函数吗?
根据文档, map
函数“将函数应用于每个可迭代项并返回结果列表”。 我注意到它也适用于类,例如map(MyClass, get_iterable())
并返回类实例列表。
这是正确的使用map
?
该文档实际上说“将函数应用于每个可迭代项”,其中函数是对参数名称的引用。 所以是的, map
可以用于任何可调用的; 并且所有类型都是可调用的(因为它们将创建该类型的对象)。
map
期望可调用。 如果一个对象是可调用的,那也可以工作:
class Foo(object):
def __call__(self, foo):
return foo
print map(Foo(), [1,2,3])
尝试一下:
>>> map(str, [1,2,3])
['1', '2', '3']
该doc将function
作为参数的名称。 它的类型是不相关的 - 它应该只能被调用。
上一篇: Can I use a class instead of a function with map in Python?