我正在尝试将某个函数标记为已弃用,以便调用它的脚本运行到正常完成状态,但会被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)方法是什么?
答案 0 :(得分:24)
你不应该raise DeprecationWarning
(或子类),因为那样你仍然会提出一个实际的异常。
而是使用warnings.warn
:
import warnings
warnings.warn("deprecated", DeprecationWarning)
https://docs.python.org/2/library/warnings.html#warnings.warn