[英]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.