在Python IDLE会话中显示用户定义函数的列表

时间:2011-06-11 10:58:54

标签: python function autocomplete

是否可以在IDLE会话中显示所有用户功能的列表?

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

4 个答案:

答案 0 :(得分:4)

这应该为您提供全局范围内所有函数的列表:

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

答案 1 :(得分:3)

这应该有效:

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

在版本3.5.2上测试。

dir()基本上会为您提供当前范围内可调用对象的列表。

答案 2 :(得分: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)])

答案 3 :(得分:1)

您可以通过

列出所有用户定义的函数,而无需任何导入
print([f.__name__ for f in globals().values() if type(f) == type(lambda *args: None)])

请注意 lambda *args: None代表什么都不做的功能,可以被任意函数取代。