首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Emacs查找可用的参数python内置的类(elpy)

如何通过Emacs查找可用的参数python内置的类(elpy)
EN

Stack Overflow用户
提问于 2017-07-30 22:36:43
回答 2查看 549关注 0票数 1

当我在elpy中使用emacs时,几乎每次我通过输入以下命令开始为函数编写代码:

代码语言:javascript
复制
foo_func(

我自动进入底部窗口:

代码语言:javascript
复制
:container.foo_func(x, y, z=None)

但是当我尝试使用像枚举或排序这样的内置类型时

代码语言:javascript
复制
enumerate(
list.sort(

我在elpy中没有得到那个漂亮的参数列表。如果不是,那么有一些方法可以通过编写一个调用来实现,比如:

代码语言:javascript
复制
>dir(enumerate)
>inspect.signature(enumerate)

感谢任何提前提出的建议

EN

回答 2

Stack Overflow用户

发布于 2017-07-30 22:40:32

不,一些内置函数(用C实现)不提供为它们创建签名所需的元数据。有些人这样做(那些在CPython中被转换为使用参数诊所的人这样做),而另一些人不这样做。

这在inspect.signatures documentation中也有说明:

注意:在某些Python语言的实现中,某些可调用的代码可能是不可内省的。例如,在CPython中,一些用C定义的内置函数没有提供关于其参数的元数据。

举个例子:

代码语言:javascript
复制
>>> signature(sorted)
<Signature (iterable, /, *, key=None, reverse=False)>
>>> signature(enumerate)
ValueError: no signature found for builtin type <class 'enumerate'>

因此,您需要查阅这些文档(可能存在使用这些文档的emacs插件?)

票数 1
EN

Stack Overflow用户

发布于 2017-08-01 01:08:04

感谢你在上面的帮助。

Elpy为文档提供了单一的界面。C-c C-d ( Elpy -doc)当point位于符号上时,Elpy将尝试查找该对象的文档,并显示该文档。如果由于某种原因找不到文档,它将尝试在pydoc中查找该符号。如果它也不在那里,它将提示用户输入一个字符串以在pydoc中查找。有了前缀参数,Elpy将跳过所有猜测,只提示用户输入要在pydoc中查找的字符串。

enumerate( #我按了C-c C-d

enumerate():

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

返回一个枚举对象。iterable必须是另一个支持迭代的对象。enumerate对象生成包含计数(从start开始,默认为0)和由iterable参数生成的值的对。enumerate对于获取索引列表很有用:(0,seq2),(1,seq1),(2,seq),...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45400945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档