[英]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.