我有一个函数在Python上迭代从dir(obj)返回的属性,我想检查是否有任何内部包含的对象是函数,方法,内置函数等。通常情况下,您可以为此使用callable(),但我不想包含类。到目前为止我所得到的最好的结果是:如果对象是任何函数类型,是否有一种常用的方法来检查Python?
isinstance(obj, (types.BuiltinFunctionType, types.FunctionType, types.MethodType))
有没有更具前瞻性的方法来做这个检查?
编辑:我之前说错了:“通常你可以使用callable(),但我不想取消资格。”我其实做想要取消资格的类。我想匹配只有函数,而不是类。
值得关注的是,它只对新型类的工作。对于旧式课程,你会得到False。 – 2008-09-16 16:28:48