有没有办法看到你在Python CMD中输入的函数代码

时间:2011-08-26 07:24:52

标签: python

刚刚发现,当我按下我的cmd时,我的一个功能代码不再可访问,这意味着我看不到我用它编写的代码。有什么办法可以再看一遍吗?有没有什么办法可以在Python cmd中看到我为这个会话创建的所有函数?

3 个答案:

答案 0 :(得分:1)

dir()应该给你一切。

修改

>>> def blah():
...   return 1
...
>>> dir()
['__builtins__', '__doc__', '__name__', 'blah']
>>>
>>> dir(blah.func_code)
['__class__', '__cmp__', '__delattr__', '__doc__', '__getattribute__', '__hash__
', '__init__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr_
_', '__str__', 'co_argcount', 'co_cellvars', 'co_code', 'co_consts', 'co_filenam
e', 'co_firstlineno', 'co_flags', 'co_freevars', 'co_lnotab', 'co_name', 'co_nam
es', 'co_nlocals', 'co_stacksize', 'co_varnames']
>>> blah.func_code.co_code
'd\x01\x00S'

答案 1 :(得分:1)

您可以通过为其分配None来“删除”某个功能。

修改

如果您想知道键入的内容,您应该将代码放在文件中并导入或执行它。 Python交互式解释器的缓冲区是有限的。

答案 2 :(得分:0)

我认为最好的办法是做一些事情:

import readline
readline.write_history_file("myhistory")

在python shell中,您定义了该函数。

之后你可以在“myhistory”文件中找到你的功能。

存在inspect模块inspect.getsourcelines,但只打印源文件中定义的函数的代码。