接手一个数据拷贝的任务,在老代码里看到大量 def xxx_fn(*args, **kwargs) 真的血压升高。
这两兄弟里面“什么都有,又什么都没有“,反正全靠猜。
没有注释,就算有注释,随时时间迁移也未必准确。
从最外层到最内层,每一层都有可能往 kwargs 里塞参数或者 pop 参数。
这样的代码心智负担大,理解起来效率低。
这种写法一点也不酷,真的要慎重是用。另外要吐槽,python 社区还有大量这种库(包括官方自带的库),不过幸好质量好一点库都有参数注释,而且(应该是)有持续维护。
我也在思考,为什么各类语言要有那么多酷炫无比的特性?我认为,这些特性大部分是为基础库服务的。上层逻辑代码乱用这种特性,只会给自己找麻烦。
一下省略 “*args, **kwargs“ 个字 |
|