【问题标题】:python 2.7 DeprecationWarnings [closed]python 2.7 DeprecationWarnings [关闭]
【发布时间】:2013-10-18 14:18:41
【问题描述】:

我最近从 2.5 升级到了 python 2.7.5
我有一个软件。为了让它在 2.7.5 上运行,我必须修复导入问题,但在那之后,它运行良好。

但是当我通过 python -Wd 打开 DeprecationWarnings 时,它给了我一堆语法错误。
当我不指定 -Wd 时,它会毫无问题地运行,因为它会忽略这些错误。

修复那些由-Wd或..引发的错误更好吗?
只要不打开警告,它就可以正常工作吗?

请两种方法的优缺点。


“做出了一项政策决定,以使仅对开发人员感兴趣的警告静音。DeprecationWarning 及其后代现在被忽略,除非另有请求,从而防止用户看到由应用程序触发的警告。此更改也在将成为的分支中进行Python 3.2.(在 stdlib-sig 上讨论并在 issue 7319 中执行。)”http://docs.python.org/dev/whatsnew/2.7.html

如果他们希望开发者解决这些问题,他们就不会决定将这些警告设为默认,对吗?

【问题讨论】:

  • 优点:你修复了你的代码。缺点:你必须花时间修复你的代码。
  • @millimoose 但是为什么我不需要修复我的代码呢?这样做有什么好处?
  • 如果你修复了你的代码,它不会随着时间的推移慢慢变得过时。如果您是唯一使用您的代码的人,那可能没问题,但如果其他人想要运行它,他们可能会喜欢拥有更新且不会引发警告的代码。
  • “如果他们希望开发人员解决这些问题,他们就不会决定将这些警告设为默认,对吗?”我认为这完全是倒退。 开发人员应该解决这些问题。他们选择压制那些用户无能为力的,因为对他们来说这只是噪音。
  • @ealeon -- 嗯,嗯,我一直有一种个人哲学,将警告视为错误。现在可能不是问题,但是警告是解释器/开发人员告诉我某些事情不太正确的一种方式。所以从这个角度来看,我会修复它,以消除现在或将来出现任何问题的可能性。

标签: python python-2.7


【解决方案1】:

弃用意味着事情已经过时了。即在不久的将来的某个时候,这些模型\功能\任何东西都将停止存在并(通常)被更新更好的版本所取代。

通常情况下,当开发人员想要摆脱某些旧功能时,他们要么立即更改它并添加有用的错误消息 (like how django did in 1.5 with the urls block),要么如果可以,他们将其简化。即他们离开已弃用的功能正常工作并添加警告以告诉您有关它们的信息。当下一个版本出来时,对那些过时的功能的支持将停止。

所以现在你的代码可以工作了。但是,如果您打算继续更新,那么最终它将停止工作。这实际上取决于您打算如何处理代码以及谁使用它等等。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    相关资源
    最近更新 更多