Python中文
首页
教程
问答
标签
搜索
登录
注册
保留向后兼容性的函数重命名
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我重构了我的旧代码,并希望根据pep8更改函数名。但我想保持与系统旧部分的向后兼容性(因为函数名是API的一部分,有些用户使用旧的客户端代码,所以不可能对项目进行完全重构)。</p> <p>简单示例,旧代码:</p> <pre><code>def helloFunc(name): print 'hello %s' % name </code></pre> <p>新的:</p> <pre><code>def hello_func(name): print 'hello %s' % name </code></pre> <p>但这两种功能都应该起作用:</p> <pre><code>>>hello_func('Alex') >>'hello Alex' >>helloFunc('Alf') >>'hello Alf' </code></pre> <p>我在想:</p> <pre><code>def helloFunc(name): hello_func(name) </code></pre> <p>,但我不喜欢它(在项目中大约有50个函数,我想它看起来会很凌乱)。</p> <p>最好的方法是什么(不包括重复购买)?有可能创造一个通用的装饰器吗?</p> <p>谢谢。</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>虽然其他答案肯定是正确的,但将函数重命名为新名称并创建一个发出警告的旧名称可能会很有用:</p> <pre><code>def func_new(a): do_stuff() def funcOld(a): import warnings warnings.warn("funcOld should not be called any longer.") return func_new(a) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我是否正确构建了这个递归神经网络
1 回答
我是否正确理解acquire和realease是如何在python库“线程化”中工作的
5 回答
我是否正确理解Keras中的批次大小?
6 回答
我是否正确理解PyTorch的加法和乘法?
8 回答
我是否正确组织了我的Django应用程序?
4 回答
我是否正确计算执行时间?如果是这样,那么并行处理将花费更长的时间。这看起来很奇怪
8 回答
我是否每次创建新项目时都必须在PyCharm中安装numpy?(安装而不是导入)
4 回答
我是否每次运行jupyter笔记本时都必须重新启动内核?
4 回答
我是否用python安装了socks模块?
8 回答
我是否真的需要知道超过一种语言,如果我想要制作网页应用程序?
9 回答
我是否缺少spaCy柠檬化中的预处理功能?
4 回答
我是否缺少给定状态下操作的检查?
6 回答
我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)
7 回答
我是否能够使用用户输入作为colorama模块中的颜色?
1 回答
我是否能够创建一个能够添加新Django.contrib.auth公司没有登录到管理面板的用户?
10 回答
我是否能够将来自多个不同网站的数据合并到一个csv文件中?
8 回答
我是否能够将目录路径转换为可以输入python hdf5数据表的内容?
9 回答
我是否能够等到一个对象被销毁,直到它创建另一个对象,然后在循环中运行time.sleep()
3 回答
我是否能够通过CBV创建用户实例,而不是首先创建表单?(Django)
10 回答
我是否要使它成为递归函数?
2 回答