Например, следующая подпись функции max в документации:
max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])
Я думал, что python разрешает имена в одном и том же пространстве имен по одному отдельному элементу за раз, без перегрузки методов.
Так как это реализовано?
Даже если он использует перегрузку и различает на «встроенном уровне» во время вызова, какой метод разрешается, в зависимости от того, какие фактические параметры передаются, как это согласуется с остальной частью Python?
Или я неверно истолковал это, и обе подписи фактически представлены с использованием одной и той же подписи и просто выписаны как два варианта для нас, людей, чтобы понять?