我正在尝试整理一个如何获取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搜索都让我失望了。
我正在寻找一种可证明且可重复的实验教学方法。谢谢!
答案 0 :(得分:5)
import __builtin__
import inspect
[name for name, function in sorted(vars(__builtin__).items())
if inspect.isbuiltin(function) or inspect.isfunction(function)]
documentation中还有一个列表。