如何在Python 2.7中提出弃用警告?

时间:2015-03-31 21:01:47

标签: python-2.7 pycharm

我正在尝试将某个函数标记为已弃用,以便调用它的脚本运行到正常完成状态,但会被PyCharm的静态代码检查捕获。 (关于这个弃用警告还有一些其他问题,但我认为它们早于Python 2.6,当我相信基于类的异常被引入时。)

这就是我所拥有的:

class Deprecated(DeprecationWarning):
    pass

def save_plot_and_insert(filename, worksheet, row, col):
    """
    Deprecated. Docstring ...<snip>
    """

    raise Deprecated()

    # Active lines of
    # the function here
    # ...

我的理解是,Deprecated Warnings应该允许代码运行,但是这个代码示例实际上在调用函数时停止。当我从函数体中删除“raise”时,代码会运行,但PyCharm不会将函数调用标记为已弃用。

将函数标记为已弃用的Pythonic(2.7.x)方法是什么?

1 个答案:

答案 0 :(得分:24)

你不应该raise DeprecationWarning(或子类),因为那样你仍然会提出一个实际的异常。

而是使用warnings.warn

import warnings
warnings.warn("deprecated", DeprecationWarning)

https://docs.python.org/2/library/warnings.html#warnings.warn