docstring是调用提示的一部分,而不是完成。当一个可访问的函数名后键入“(”时,将显示调用提示。在键入“)”或单击鼠标或移动光标以关闭它之前,调用提示应保持显示状态。Cntl-\将其恢复。在

调用提示由函数签名和docstring的第一行组成。对于没有可访问签名的内置项(例如,在3.4.3中,int或bytes),调用提示由第五行或第一个空行上的所有行组成。在

可访问的函数集取决于已将哪些模块导入到用户进程中(代码在其中执行),包括Idle本身导入的模块,以及运行了哪些代码(自上次重新启动以来)。例如,重新启动Shell(Cntl-F6),打开一个新的编辑器窗口,然后输入itertools.count(

出现一个调用提示是因为Idle将itertools导入用户进程以供自己使用。进入

^{pr2}$

而什么也没有出现,因为闲人不进口乌龟。Cntl-\也不执行任何操作。进入import turtle

上面的函数调用并不能立即起作用,但是如果运行文件来执行导入,turtle函数的调用提示就可用了。在

这表明,可能需要在编写顶部的import语句后运行文件,或者在编辑之前立即运行现有文件。在

评论:我怀疑您的问题是,您正在尝试获取当前不可访问的函数的调用提示,即使它可能在以前可以访问,并且在运行代码后将变得可访问。

我打开了issue 24028,在completions小节之后,将类似上述内容添加到空闲文档中,作为关于调用提示的小节

现有的issue 1350是关于添加显示完整docstring的选项。

可用性问题是个麻烦。我有一些改进的办法。同时,使用上面关于运行导入的建议。

编辑:2018年8月2日macosx或MacOS与tcl/tk的某些组合需要在

idlelib/calltip_w.py(3.6+)或idlelib/CallTipWindow.py(3.5-)之间添加一行。Issue 34275self.label.pack() # Line 74
tw.update_idletasks() # ADD THIS LINE!
tw.lift()

这应该包含在将来的版本中。如果以上操作无效,请删除_idletasks