例如,文档中max函数的以下签名:
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
我认为python一次将同一名称空间中的名称解析为一个不同的项目,没有方法重载。
那怎么实现呢?即使它使用重载并在调用哪个方法时在“内置级别”区分,取决于传递的实际参数,这与python的其余部分如何一致?
或者我是否误解了它,并且两个签名实际上都使用相同的签名来表示,并且只是作为两个变体写出来供我们人类理解?
你说得对。
秒变量只是一个展开的列表 - 这是一个可迭代的。所以可迭代版本是两者中更一般的。