如何在Python中声明一个模块已弃用

28

如何在Python中声明一个模块已弃用?

我希望在导入特定模块或调用其任何函数时打印警告。


1
__init__中添加print "Deprecated"或添加一个执行相同操作的装饰器。 - ForceBru
https://docs.python.org/2/library/warnings.html - jonrsharpe
1
@ForceBru:你要如何向模块添加一个装饰器?它的__init__方法在哪里可以找到? - abarnert
1个回答

29
你想要使用warn函数并搭配一个DeprecationWarning来发出警告。

具体如何调用并不是很重要,但标准库中有一种针对弃用模块的标准模式,就像这样:

# doc string, top-level comments, imports, __all__ =

import warnings
warnings.warn("the spam module is deprecated", DeprecationWarning,
              stacklevel=2)

# normal module code

请参考2.7版本的sets源代码中的示例。


3
我已经在特定模块的__init.py__中使用了这段代码,希望将其作为弃用显示。但它没有起作用,也没有出错。该模块的函数和类很容易访问。 - driven_spider

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接