繁体   English   中英

我可以在Python中使用类而不是Map的函数吗?

[英]Can I use a class instead of a function with map in Python?

根据文档map函数“将函数应用于iterable的每个项目并返回结果列表”。 我注意到它也适用于类,例如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称为参数名称 它的类型无关紧要-它只能是可调用的。

是的,python是鸭子类型的,因此,如果可以在可迭代对象上调用某些内容(例如MyClass构造函数),则它将不会返回任何错误(并且它将是有效的)。

是。 在您的示例中,您实际上是在将类的构造函数映射到项目列表。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM