IPython是怎么回事?操作员实际工作?

时间:2012-03-27 07:02:58

标签: python console ipython metaclass

所以我想,为了在控制台应用程序中实现这样的功能,在函数名称的末尾附加一个问号会将它的文档字符串倒出来,我可能会使用像元类一样的功能,其中在定义/导入时,我会复制所有模块成员名称并生成新的名称只是为了输入文档字符串。

然后我注意到你不需要实际的括号来调用辅助函数而python实际上并不允许你在函数名的末尾添加一个问号....所以这是在python中完成的或者我只是在浪费时间试图解决这个问题?

提前致谢

3 个答案:

答案 0 :(得分:2)

它没有像你想象的那样完成。 ipython将您的命令提示输入作为一行文本读取,因此它有机会在将问题传递给eval(或其他任何内容)之前检查它是否以问号结尾。如果是,则运行help(name)而不是您键入的内容。

AST看起来有点重要,但你可以通过查看模块code来了解其工作原理。它为您提供了一个轻量级的解释器,您可以根据需要使用此类语法进行扩展。

答案 1 :(得分:0)

ipython使用AST,您可以自定义语法分析并创建新的ipython分支。

可能有帮助

答案 2 :(得分:0)

查看IPython.core.inputsplitter模块,了解解析原始输入行的代码,例如?,!,/,%等。