函数的默认参数在函数对象创建时而不是函数调用时启动。这为可变的默认参数创建了一个陷阱,每个人至少有一次陷入其中。之后,它只需要一堆样板代码以避免它。此行为只有little upside。
this question或简单的google search可以看到问题的重要性。
所以我的问题是为什么在一个向后兼容性破坏步骤(1-> 2或2-> 3)中这种行为没有改变?我确信核心开发团队至少在某个时候讨论过这个问题。我想知道是否有任何信息(邮件列表,pep,...)来阅读有关为什么不修改此行为的论据。