繁体   English   中英

Python:如何弃用 function 别名

[英]Python: How to deprecate a function alias

正如标题所述,我想要实现的是:我有一个 python 代码库,我想将所有函数从 camelCasing 重命名为 underscore_naming。 为了保持向后兼容性,我重命名了所有函数,但为所有旧名称创建了 function 别名。 到目前为止,一切都很好。

现在我要做的是向 function 别名添加弃用警告,最好采用如下方式:

def do_something():
    ...


@deprecated(deprecated_in='2.0',
            details='All functions have been adapted to fit the PEP8 standard. Please use "do_something" instead')
doSomething = do_something

因此,如果有人使用旧的 API 调用,他们将收到弃用警告。 我已经查看了deprecationDeprecated ,但它们似乎都不适用于别名。

我意识到我可以为每个不推荐使用的名称创建一个 function 定义并对其进行装饰,但这会失去 function 别名的优雅,并且会产生更多肮脏的代码。 有没有人有一个很好的建议来实现我想要的?

实际上,我最终选择了一个不同的解决方案,类似于Method and property aliases with custom docstring in Python 中的建议。

我将代码修改为

@alias('doSomething', deprecated=True)
def do_something():
    ...

并向别名装饰器添加了弃用警告。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM