我的IDLE(Python 3.4.3)在输入函数名称时不会显示函数doc-strings。
有人熟悉这个问题吗?
我已尝试过所有内容,包括卸载等。网上的答案无处可寻。
我正在谈论自动显示文档字符串, NOT 在专门输入时:
print(func. __ doc __)
由于
答案 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语句后运行文件,或者在编辑之前立即运行现有文件。
评论:
我怀疑您的问题是您正在尝试获取当前无法访问的功能的calltip,即使它之前可以访问并且在运行代码后可以访问。
< / LI>我已经打开issue 24028,在completions
现有issue 1350是关于添加显示完整文档字符串的选项。
可用性问题令人讨厌。我有一些改进它的想法。同时,请使用上面有关运行导入的建议。
编辑:2018年8月2日
Mac OSX或MacOS和tcl / tk的某些组合需要在import turtle
(3.6+)或idlelib/calltip_w.py
(3.5-)中添加一行。 Issue 34275
idlelib/CallTipWindow.py
这应该包含在将来的版本中。如果上述操作无效,请删除self.label.pack() # Line 74
tw.update_idletasks() # ADD THIS LINE!
tw.lift()