簡體   English   中英

Python 2:函數抽象類型

[英]Python 2: function abstract type

我有一個接受映射的函數,該映射可以是函數的字典,因此我需要對其進行區分。 通常,我使用collectionsisinstance / issubclass一些抽象基類來檢查參數類型,但是函數沒有ABC。 我知道我可以做hasattr(mapping, "__call__") ,但是我想知道是否有一些更具體的功能。

您可以使用在Python 2.7和Python 3.2+中可用的callable(obj) ,但在Python 3.0或Python 3.1中不可用。

您還可以使用types.FunctionType

isinstance(obj, types.FunctionType)

您可以為此使用types模塊,其中定義了FunctionType

>>> import types
>>> types.FunctionType
<type 'function'>
>>> def foo(): pass
... 
>>> isinstance(foo, types.FunctionType)
True

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM