我正在尝试整理一个如何获取Python中所有内置函数列表的规范示例.文档很好,但我想用可证明的方法来证明它.
在这里,我实际上将内置函数定义为默认命名空间的成员,这些成员可以使用,并且与用于模块的函数的样式特征一致,即:它们提供了一些有用的功能并开始用小写字母表示.
我在这里做的好处是,我正在展示列表推导的过滤器部分,但它似乎有点肮脏的黑客,并且应该有更直接的方式来做到这一点.这是我到目前为止所做的事情:
import string
alc = string.ascii_lowercase
bif = [i for i in dir(__builtins__) if
any(i.startswith(j) for j in alc)]
Run Code Online (Sandbox Code Playgroud)
这给了我:
['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','zip']
我相信它们都是可调用的,就像这样:
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)
Run Code Online (Sandbox Code Playgroud)
我明白了:
set([])
Run Code Online (Sandbox Code Playgroud)
那么有没有更好的方法来列出内置的Python函数?到目前为止,Google和stackoverflow搜索都让我失望了.
我正在寻找一种可证明且可重复的实验教学方法.谢谢!
import __builtin__
import inspect
[name for name, function in sorted(vars(__builtin__).items())
if inspect.isbuiltin(function) or inspect.isfunction(function)]
Run Code Online (Sandbox Code Playgroud)
文档中还有列表.
| 归档时间: |
|
| 查看次数: |
287 次 |
| 最近记录: |