Sustie

主页 所有文章 文章检索

Python标记deprecated的装饰器

从Python 3.13开始,warnings模块里新增了一个@deprecated装饰器,用于标记函数等已经被启用。具体可以参考Python文档PEP 702

下面是一个简单的例子:

from warnings import deprecated

@deprecated("use new_func instead")
def old_func():
    pass

VS Code已经提供了对于@deprecated装饰器的支持,如果调用了被弃用的函数,会在函数上看到一个删除线,将鼠标悬停在上面可以看到警告信息。

如果你还在使用Python 3.12或者更早的版本,可以使用typing_extensions模块里的@deprecated装饰器来代替,这是标准库的一个移植。(不过这里有点奇怪:typing_extensions应该是typing模块的移植,怎么把warnings模块也移植过来了?)