我有一個函數在Python上迭代從dir(obj)返回的屬性,我想檢查是否有任何內部包含的對象是函數,方法,內置函數等。通常情況下,您可以爲此使用callable(),但我不想包含類。到目前爲止我所得到的最好的結果是:如果對象是任何函數類型,是否有一種常用的方法來檢查Python?
isinstance(obj, (types.BuiltinFunctionType, types.FunctionType, types.MethodType))
有沒有更具前瞻性的方法來做這個檢查?
編輯:我之前說錯了:「通常你可以使用callable(),但我不想取消資格。」我其實做想要取消資格的類。我想匹配只有函數,而不是類。
值得關注的是,它只對新型類的工作。對於舊式課程,你會得到False。 – 2008-09-16 16:28:48