根据doc, map 函数“将函数应用于iterable的每个项目并返回结果列表” . 我注意到它也适用于类,例如 map(MyClass, get_iterable()) 并返回类实例的列表 .这是 map 的正确用法吗?
map
map(MyClass, get_iterable())
试试吧:
>>> map(str, [1,2,3]) ['1', '2', '3']
doc指的是 function 作为参数的名称 . 它的类型是无关紧要的 - 它只应该是可调用的 .
function
是的,python是duck-typed,所以如果可以在iterable上调用某些东西(比如MyClass构造函数),那么它将不返回任何错误(并且它将是有效的) .
是 . 在您的示例中,您实际上是将类的构造函数映射到item列表 .
文档实际上说“将函数应用于每个可迭代项目”,其中函数是对参数名称的引用 . 所以是的, map 可以与任何可调用的一起使用;并且所有类型都是可调用的(因为它们将创建该类型的对象) .
map 期望一个可调用的 . 如果一个对象是可调用的,那么它也适用:
class Foo(object): def __call__(self, foo): return foo print map(Foo(), [1,2,3])
5 回答
试试吧:
doc指的是
function
作为参数的名称 . 它的类型是无关紧要的 - 它只应该是可调用的 .是的,python是duck-typed,所以如果可以在iterable上调用某些东西(比如MyClass构造函数),那么它将不返回任何错误(并且它将是有效的) .
是 . 在您的示例中,您实际上是将类的构造函数映射到item列表 .
文档实际上说“将函数应用于每个可迭代项目”,其中函数是对参数名称的引用 . 所以是的,
map
可以与任何可调用的一起使用;并且所有类型都是可调用的(因为它们将创建该类型的对象) .map
期望一个可调用的 . 如果一个对象是可调用的,那么它也适用: