Python IDLE不会显示docstring

时间:2015-04-21 22:25:25

标签: python python-3.x python-idle docstring

我的IDLE(Python 3.4.3)在输入函数名称时不会显示函数doc-strings。

有人熟悉这个问题吗?

我已尝试过所有内容,包括卸载等。网上的答案无处可寻。

我正在谈论自动显示文档字符串, NOT 在专门输入时:

print(func. __ doc __) 

由于

1 个答案:

答案 0 :(得分:2)

Docstrings,是calltips的一部分,而不是完成。当一种类型'('在可访问功能的名称之后'时显示呼叫提示。呼叫提示应保持显示直到一种类型')'或单击鼠标或以其他方式移动光标以关闭它。 Cntl- \把它带回来。

calltip包含函数签名和docstring的第一行。对于没有可访问签名的内置函数(例如,在3.4.3中, pattern = Pattern.compile(txt1.getText()); matcher = pattern.matcher( ""+txtarea1.getText()); while (matcher.find()) { txtarea2.setText( txtarea1.getText()); } matcher.group(); Highlighter h = txtarea2.getHighlighter(); HighlightPainter painter = new DefaultHighlighter.DefaultHighlightPainter(Color.YELLOW); int p0 = matcher.start(); int p1 = matcher.end(); try { h.addHighlight(p0, p1, painter); } catch (BadLocationException ex) { Logger.getLogger(RE.class.getName()).log(Level.SEVERE, null, ex); } int),calltip包含第五行或第一个空行的所有行。

可访问函数集取决于已将哪些模块导入到用户进程(执行代码的位置),包括由Idle本身导入的模块以及已运行的代码(因为最后重启)。例如,重新启动Shell(Cntl-F6),打开一个新的编辑器窗口,然后输入

bytes

出现一个calltip,因为Idle将itertools导入到用户进程中供自己使用。输入

itertools.count(

并且没有任何内容出现,因为Idle不会导入乌龟。 Cntl- \也没有做任何事情。输入

turtle.write(
函数调用上方的

不会立即生效,但如果运行该文件以执行导入,则可以使用for函数的calltips。

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

评论:

  1. 我怀疑您的问题是您正在尝试获取当前无法访问的功能的calltip,即使它之前可以访问并且在运行代码后可以访问。

    < / LI>
  2. 我已经打开issue 24028,在completions

  3. 上的小节后,将上述内容添加到空闲文档中作为calltips的小节
  4. 现有issue 1350是关于添加显示完整文档字符串的选项。

  5. 可用性问题令人讨厌。我有一些改进它的想法。同时,请使用上面有关运行导入的建议。

  6. 编辑:2018年8月2日

    1. Mac OSX或MacOS和tcl / tk的某些组合需要在import turtle (3.6+)或idlelib/calltip_w.py(3.5-)中添加一行。 Issue 34275

      idlelib/CallTipWindow.py
    2. 这应该包含在将来的版本中。如果上述操作无效,请删除self.label.pack() # Line 74 tw.update_idletasks() # ADD THIS LINE! tw.lift()