[英]Where can I find documentation of Python-Future imports that are incompletely implemented?
我最近发现, future
可用的round
函数不支持负数舍入,这与内置round
不兼容:
>>> from builtins import round
>>> round(4781, -2)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/future/builtins/newround.py", line 33, in newround
raise NotImplementedError('negative ndigits not supported yet')
NotImplementedError: negative ndigits not supported yet
这在某种程度上限制了Python-Future快速入门建议的用途:
最简单的方法是使用这些行来启动每个新模块:
from __future__ import (absolute_import, division, print_function, unicode_literals) from builtins import *
然后编写标准的Python 3代码。
我找不到任何地方记录的round
不兼容,想知道还有哪些其他函数或类型的行为不同或具有未实现的功能。 还有什么其他陷阱? 这些不兼容情况记录在哪里?
没有这样的清单。
Python-Future项目与Python项目是完全分开的,因此,您的确不会在Python官方文档中列出的Python-Future项目中发现任何实现上的空白。
不幸的是, round()
的参考文档未能在实现中提及此差距。 倾斜引用newround
模块docstring也是没有帮助的,因为在细节上也很少 。
您必须要求Python-Future项目提供这样的列表,您可以尝试提出一个问题 ,要求他们做出这样的列表。
在此期间,您可以在源代码中搜索NotImplementedError
引用 。 这将产生一个不完整的列表,因为在实现中可能存在一些缺陷,而该缺陷没有被引发该异常所覆盖。
就个人而言,我建议不要使用Python-Future。 该项目在不考虑适用性或性能的情况下向后移植所有内容的理念不适用于生产代码; 例如,它们的super()
实现必须依赖对类MRO上所有属性的完整扫描,以找到相关的类以用作第一个累积量,从而使其变慢且麻烦。 仅仅因为您可以使其以某种方式起作用并不意味着您应该这样做。
他们的实现是不完整的,没有明确指出差距在哪里,这只会使我对项目的看法更难改变。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.