代码之家  ›  专栏  ›  技术社区  ›  Lee Hachadoorian

在哪里可以找到未完全实现的Python未来导入的文档?

  •  2
  • Lee Hachadoorian  · 技术社区  · 8 年前

    我最近发现 round 功能在中可用 future 不支持负数字舍入,这与内置不兼容 圆形的 :

    >>> 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代码。

    我找不到 圆形的 不兼容性在任何地方都有记录,并且想知道其他函数或类型的行为有哪些不同,或者有哪些未实现的特性。还有什么其他的陷阱?这些不兼容性记录在哪里?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Martijn Pieters    8 年前

    没有这样的清单。

    Python Future项目完全独立于Python项目,因此您确实不会在官方Python文档中列出的Python Future项目中发现任何实现差距。

    不幸的是 reference documentation for round() 在实施中没有提到这一差距。对 newround 模块docstring也没有帮助,因为 it too is very scant on details .

    您必须向Python未来项目询问这样一个列表,您可以尝试 file an issue 让他们列出这样一个清单。

    在此期间,你可以 search for NotImplementedError references 在源代码中。这将产生一个不完整的列表,因为提出该例外情况可能会弥补实施中的不足。


    就个人而言,我建议不要在将来使用Python;该项目不考虑适用性或性能而对所有内容进行后移植的理念不适合生产代码;例如 super() implementation 必须依赖于对类MRO上所有属性的完整扫描来定位要用作第一个argumant的相关类,这使得它既慢又麻烦。就因为你能让它工作 以某种方式 但这并不意味着你应该这么做。

    他们的实施是不完整的,没有明确指出差距在哪里,这只会让我更难改变对项目的看法。