簡體   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