怎么用'?'对象信息工作?

时间:2018-02-17 00:07:08

标签: python function ipython

我偶然发现了Python decorator to keep signature and user defined attribute中的以下语法:

> def func():
...     return "Hello World!"
...
> func?
Signature: func()
Docstring: <no docstring>
File:      ~/<ipython-input-8-934f46134434>
Type:      function

在我的Python Shell中尝试相同的操作,无论是2还是3,只需引发SyntaxError。那究竟是什么呢,它是否特定于某些贝壳?

2 个答案:

答案 0 :(得分:2)

在预先打包的Python IDLE shell中使用?字符的原因失败,因为使用?特定于IPython

  

键入?wordword?会打印有关对象的详细信息。如果对象中的某些字符串太长(例如函数签名),为简洁起见,它们会在中心被剪切。该系统提供访问变量类型和值,文档字符串,函数原型和其他有用信息。

答案 1 :(得分:2)

这是一个IPython功能,描述为here

  

键入?wordword?会打印有关对象的详细信息。
...
  键入??wordword??可以访问完整信息,包括可能的源代码。长弦不会被剪断。