2011-06-11 95 views
2

是否可以在IDLE会话中显示所有用户函数的列表?在Python IDLE会话中显示用户定义的函数列表

我可以看到它们在自动完成中弹出,所以也许还有其他的方法只显示为会话定义的用户函数。当您忘记功能的名称时它很有用。而且当你想要确保在会话关闭时不会丢失函数的源代码。

回答

4

这应该给你在全球范围内的所有功能的列表:

import types 
print [f for f in globals().values() if type(f) == types.FunctionType] 
+1

我试过可调用(f),它做了我想要的。它可能会返回比您想要的更多的对象。例如, – Gra 2011-12-07 14:23:44

+0

,类是可调用的。 – lunixbochs 2011-12-07 22:07:12

2

如果我没有理解这个问题...尝试dir()

import my_module 
dir(my_module) 

只需编辑什么lunixbochs写道

def fun(): pass 
print([f.__name__ for f in globals().values() if type(f) == type(fun)]) 
+0

我对由用户定义的当前Python会话中不属于某个模块的函数感兴趣。 – Leonid 2011-06-11 12:44:06

1

这应该工作:

print([f for f in dir() if f[0] is not '_']) 

测试版本号3.5.2

dir()本质上会给你一个可调用列表当前范围内的对象列表。