如何通过Emacs(elpy)在类中找到python内置的可用参数



当我将 emacs 与 elpy 一起使用时,几乎每次我开始通过键入以下内容为函数编写代码时:

foo_func(

我自动进入底部窗口:

:container.foo_func(x, y, z=None)

但是当我尝试使用枚举或排序等内置类型时

enumerate(
list.sort(

我在 elpy 中没有得到那个不错的论点列表。如果没有,那么即使通过编写这样的电话,也有办法获得它:

>dir(enumerate)
>inspect.signature(enumerate)

提前欣赏任何指示

不,某些内置函数(用 C 语言实现(不提供为其创建签名所需的元数据。有些会这样做(那些在CPython中转换为使用Argument Clinic的人会这样做(,而另一些则不会。

这在inspect.signature的文档中也有说明:

注意:在某些 Python 实现中,某些可调用对象可能无法自省。例如,在CPython中,C中定义的一些内置函数不提供有关其参数的元数据。

举个例子:

>>> signature(sorted)
<Signature (iterable, /, *, key=None, reverse=False)>
>>> signature(enumerate)
ValueError: no signature found for builtin type <class 'enumerate'>

所以你需要查阅这些文档(也许存在使用文档的 emacs 插件?

感谢您在上面有所帮助。

Elpy 为文档提供了一个单一的界面。C-c C-d (elpy-doc( 当点在符号上时,Elpy 将尝试查找文档 ,并显示该对象。如果找不到文档 无论出于何种原因,它都会尝试在 皮多克。如果它不存在,它将提示用户输入字符串 在 Pydoc 中查找。使用前缀参数,Elpy 将跳过所有 猜测,只是提示用户输入一个字符串以在 pydoc 中查找。

enumerate(# & I hit C-c C-d

枚举((:

枚举(可迭代[, 开始]( - 索引的>迭代器,可迭代的值

返回枚举对象。 可迭代必须是另一个支持 迭 代。 枚举对象生成包含计数(从 start,默认为零(和可迭代参数生成的值。 枚举对于获取索引列表很有用: (0, 序列[0](, (1, 序列[1](, (2, 序列[2](, ...

最新更新