0
点赞
收藏
分享

微信扫一扫

小心 Python 函数默认参数的陷阱

杰森wang 2022-01-17 阅读 48

Python 的函数参数支持默认值,这是本人一直喜欢的特性,Python 不支持方法重载,但默认参数可起到类似的效果,还不用写多个函数。现在支持默认参数的语言普遍的,像 C++, C#, Ruby, Groovy, PHP, Scala, JavaScript 等,Java 还不行。

但是特别要小心,Python 的函数默认值与其他的语言是不同的,直接违反了最直观的常识 -- 默认参数应该是省略就每次用同样的默认值,传的话就用传入的值。

当我在 IntelliJ IDEA 中写类似如下的代码

1

2

3

def foo(a, b=[]):

    b.append(1)

    return b

我的 SonarLint 插件就要抱怨了

说是

阅读全文 >>

 

举报

相关推荐

0 条评论