chinesehuazhou/python-whydo

为什么 Python 不支持函数重载?

Opened this issue · 0 comments

函数重载指的是有多个同名的函数,但是它们的签名或实现有不同。

Python 中使用装饰器(例如 functools 库的 singledispatch),可以实现函数重载的效果。

然而,原生 Python 语法层面不支持函数重载。

初步原因:locals 命名空间中不允许出现同名函数

TODO:语言设计时的考虑?相关历史讨论线索?