【发布时间】:2011-09-13 00:23:57
【问题描述】:
是否可以在 IDLE 会话中显示所有用户功能的列表?
我可以看到它们在自动完成中弹出,所以也许还有其他方法可以只显示为会话定义的用户函数。当您忘记函数的名称时,它很有用。当您想确保在会话关闭时不会丢失函数的源代码时。
【问题讨论】:
标签: python function autocomplete
是否可以在 IDLE 会话中显示所有用户功能的列表?
我可以看到它们在自动完成中弹出,所以也许还有其他方法可以只显示为会话定义的用户函数。当您忘记函数的名称时,它很有用。当您想确保在会话关闭时不会丢失函数的源代码时。
【问题讨论】:
标签: python function autocomplete
您可以列出所有用户定义的函数,而无需任何导入
print([f.__name__ for f in globals().values() if type(f) == type(lambda *args: None)])
请注意
lambda *args: None 代表什么都不做的函数,可以被任意函数替换。
【讨论】:
这应该会给你一个全局范围内所有函数的列表:
import types
print([f for f in globals().values() if type(f) == types.FunctionType])
【讨论】:
这应该可行:
print([f for f in dir() if f[0] is not '_'])
在版本 3.5.2 上测试。
dir() 本质上会为您提供当前范围内的可调用 对象列表。
【讨论】:
如果我理解这个问题...试试dir()
import my_module
dir(my_module)
只需编辑 lunixbochs 写的内容
def fun(): pass
print([f.__name__ for f in globals().values() if type(f) == type(fun)])
【讨论】: