如何获取Python中所有内置函数的列表?

时间:2013-12-18 06:38:14

标签: python function

我正在尝试整理一个如何获取Python中所有内置函数列表的规范示例。文档很好,但我想用可证明的方法来证明它。

在这里,我实际上将内置函数定义为默认命名空间的成员,这些成员可以使用并且与用于模块的函数的样式特征一致,即:它们提供了一些有用的功能,并以字母表的小写字母开头。

我在这里做的好处是,我正在展示列表推导的过滤器部分,但它似乎有点肮脏的黑客,并且应该有更直接的方式来做到这一点。以下是我到目前为止所做的事情:

import string
alc = string.ascii_lowercase
bif = [i for i in dir(__builtins__) if 
       any(i.startswith(j) for j in alc)]

这给了我:

  

['abs','all','any','apply','basestring','bin','bool','buffer',   'bytearray','bytes','callable','chr','classmethod','cmp',   'coerce','compile','complex','copyright','credits','delattr',   'dict','dir','divmod','enumerate','eval','execfile','exit',   'file','filter','float','format','frozenset','getattr',   'globals','hasattr','hash','help','hex','id','input','int',   'intern','isinstance','issubclass','iter','len','license',   'list','locals','long','map','max','memoryview','min','next',   'object','oct','open','ord','pow','print','property','quit',   'range','raw_input','reduce','reload','repr','reverse','round',   'set','setattr','slice','sorted','staticmethod','str','sum',   'super','tuple','type','unichr','unicode','vars','xrange',   '拉链']

我相信他们都是可以调用的,就像这样:

bi2 = [i for i in dir(__builtins__) if 
       any(i.startswith(j) for j in alc) 
       and callable(getattr(__builtins__, i, None))]
set(bif).symmetric_difference(bi2)

我明白了:

set([])

那么有没有更好的方法来列出内置的Python函数?到目前为止,Google和stackoverflow搜索都让我失望了。

我正在寻找一种可证明且可重复的实验教学方法。谢谢!

1 个答案:

答案 0 :(得分:5)

import __builtin__
import inspect

[name for name, function in sorted(vars(__builtin__).items())
 if inspect.isbuiltin(function) or inspect.isfunction(function)]

documentation中还有一个列表。