【问题标题】:Python IDLE won't show docstringPython IDLE 不会显示文档字符串
【发布时间】:2025-12-09 09:35:01
【问题描述】:

在输入函数名称时,我的 IDLE (Python 3.4.3) 不会显示函数文档字符串。

有人熟悉这个问题吗?

我已经尝试了所有方法,包括卸载等。网上找不到答案。

我说的是自动显示文档字符串,不是在专门输入时:

print(func. __ doc __) 

谢谢

【问题讨论】:

  • Ctrl + Space 开始自动完成,导航到您的函数名称,然后使用左括号查看包含文档字符串的弹出窗口。
  • 你以前有过那个文档字符串显示吗?您可能还需要考虑使用 IDE 进行开发。
  • @MalikBrahimi,问题是在我输入左括号后,文档字符串就不会显示。
  • 和@pyan,是的,它之前确实显示过。

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


【解决方案1】:

文档字符串是调用提示的一部分,而不是完成。当在 accessible 函数的名称之后键入“(”时,会显示调用提示。调用提示应保持显示,直到键入“)”或单击鼠标或以其他方式移动光标以将其关闭。 Cntl-\ 把它带回来。

调用提示由函数签名和文档字符串的第一行组成。对于没有可访问签名的内置函数(例如,在 3.4.3 中,intbytes),调用提示由第五行或第一个空白行之前的所有行组成。

可访问 函数的集合取决于哪​​些模块已导入到用户进程(代码在其中执行),包括由 Idle 本身导入的模块,以及已运行的代码(因为上次重启)。比如重启Shell(Cntl-F6),打开一个新的编辑器窗口,输入

itertools.count(

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

turtle.write(

什么也没有出现,因为 Idle 没有导入海龟。 Cntl-\ 也不做任何事情。进入

import turtle

上面的函数调用并没有立即提供帮助,但是如果运行文件来执行导入,turtle 函数的调用提示就会变得可用。

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

评论:

  1. 我怀疑您的问题是您正在尝试获取当前无法访问的函数的调用提示,即使它之前可能已经可以访问并且在运行您的代码后将变得可以访问。

  2. 我已打开 issue 24028 以将上述内容添加到空闲文档中,作为 completions 小节之后的 calltips 小节

  3. 现有的issue 1350 是关于添加显示完整文档字符串的选项。

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

编辑:2018 年 8 月 2 日

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

    self.label.pack()  # Line 74
    tw.update_idletasks()  # ADD THIS LINE!
    tw.lift()
    

这应该包含在未来的版本中。如果以上不行,请删除_idletasks

【讨论】:

  • 好的!首先,非常感谢您的解释。所以我提到了CallTips。 Ctrl-\ 手动打开调用提示确实很好,前几天我刚刚看到在其他计算机上,当调用一个函数(已经导入的模块,不用担心)时,调用提示会自动显示,在写入 '(' ..我很沮丧,我的 IDLE 不会自动显示 CallTips。但是我确实导入了模块,这不是问题。
  • 这令人费解。除非你能给我一个准确的击键顺序,在我的 Win7 机器上重现问题,否则我很难说更多。
  • 我为 Mac 上的某些 calltip 问题添加了解决方案。我不知道你有什么,但 Mac 上的其他人确实需要这个解决方案。
最近更新 更多