Как некоторые встроенные функции python согласованы с разрешением метода python? - PullRequest
1 голос
/ 31 марта 2019

Например, следующая подпись функции max в документации:

max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

Я думал, что python разрешает имена в одном и том же пространстве имен по одному отдельному элементу за раз, без перегрузки методов.

Так как это реализовано? Даже если он использует перегрузку и различает на «встроенном уровне» во время вызова, какой метод разрешается, в зависимости от того, какие фактические параметры передаются, как это согласуется с остальной частью Python?

Или я неверно истолковал это, и обе подписи фактически представлены с использованием одной и той же подписи и просто выписаны как два варианта для нас, людей, чтобы понять?

1 Ответ

0 голосов
/ 31 марта 2019

Вы в значительной степени правы.

Вариант секунд - это просто развернутый список, который является итеративным.Таким образом, повторяемая версия является более общей из двух.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...