Can I use a class instead of a function with map in Python?
According to the doc, the map function "applies function to every item of iterable and returns a list of the results". I've noticed that it also works for classes, eg map(MyClass, get_iterable()) and returns a list of the class instances.
Is this correct usage of map ?
The docs actually say “Apply function to every item of iterable” where function is a reference to the parameter name. So yes, map can be used with any callable; and all types are callable (in that they will create an object of that type).
map expects a callable. If an object is a callable, that works too:
class Foo(object):
def __call__(self, foo):
return foo
print map(Foo(), [1,2,3])
try it:
>>> map(str, [1,2,3])
['1', '2', '3']
the doc refers to function as the name of the argument. Its type is irrelevant - it should only be callable.
