试图确保“可调用”内置函数可用。
polyfill-callable的Python项目详细描述
试图确保callablebuiltin可用。
大多数python版本都有一个名为^{tt1}的本机内置函数$ 它检查参数是否为可调用对象。
这适用于所有现代支持的cpython版本(包括 无堆栈)、pypy、jython、ironpython、micropython、pypy.js、brython, 可能还有其他版本,但是有一小部分python版本 其中callable未实现。
这个模块背后的概念是它试图确保 callablebuiltin可用:
- 在已经有callable可用的python版本上, 导入它不会破坏任何内容,只留下callable。
- 在没有callablebuiltin的版本上,在导入时 尝试注入等效的实现,以便代码调用 callable继续工作。
- 如果您的python运行时没有callablebuiltin,并且此代码是 无法聚合填充,它将引发NotImplementedError。
安装
pip install polyfill-callable
用法
在运行任何其他使用 callable:
importpolyfill_callable
如果您想优雅地捕获NotImplementedError。 处理缺少callable的问题。
try:importpolyfill_callableexceptNotImplementedErroraserror:# .. do something ..
限制
截至2018-02-17日,本模块只有一个callable polyfill用于:
- 之前没有callable的早期cpython 3版本 它是在cpython 3.2中添加回来的。在那里我们可以用 ctypes,并使用 builtins。
如果有其他python实现版本 有可能支持polyfill,最终可能会添加到这里。