Python检验方法在一个空的dict方法上重复错误

2024-09-28 22:24:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图使用inspect获取对象上所有方法的列表。我可以得到所有成员的列表,但是instance.isfunction和{}只返回{}。在

x = [f for n, f in inspect.getmembers({}) if n == 'keys'][0]
x
#> <function keys>

inspect.isfunction(x)
#> False

inspect.ismethod(x)
#> False

x()
#> []

我希望这些函数中至少有一个返回True,尤其是当我可以像绑定方法一样调用时。这是python2.7.5。在


Tags: 对象方法instanceinfalse列表forif
1条回答
网友
1楼 · 发布于 2024-09-28 22:24:30

它是一个builtin。引用文件:

Return true if the object is a built-in function or a bound built-in method

(重点是我的)

它也碰巧是一个routine如果这有帮助的话。。。在


>>> import inspect
>>> x = [f for n, f in inspect.getmembers({}) if n == 'keys'][0]
>>> x
<built-in method keys of dict object at 0x7fd9c3027710>
>>> inspect.isbuiltin(x)
True
>>> inspect.isroutine(x)
True

请注意,^{}只包含用python编写的方法(这dict.keys当然不是用CPython编写的)。在

相关问题 更多 >