Significa o fim dos parâmetros apenas posicionais , parâmetros que você não pode usar como parâmetros de palavras-chave. Antes do Python 3.8, esses parâmetros só podiam ser especificados na API C.
Isso significa que o key
argumento __contains__
só pode ser passado por position ( range(5).__contains__(3)
), não como argumento de palavra-chave ( range(5).__contains__(key=3)
), algo que você pode fazer com argumentos posicionais em funções de python puro.
Consulte também a documentação da Argument Clinic :
Para marcar todos os parâmetros como somente posicionais na Argument Clinic, adicione um /
em uma linha após o último parâmetro, recuado da mesma forma que as linhas de parâmetro.
e a (adição muito recente) à FAQ do Python :
Uma barra na lista de argumentos de uma função indica que os parâmetros anteriores a ela são apenas posicionais. Parâmetros somente posicionais são aqueles sem um nome utilizável externamente. Ao chamar uma função que aceita parâmetros somente posicionais, os argumentos são mapeados para parâmetros baseados apenas em sua posição.
A sintaxe agora faz parte da especificação da linguagem Python, a partir da versão 3.8 , consulte PEP 570 - Parâmetros somente de posição do Python . Antes do PEP 570, a sintaxe já estava reservada para possível inclusão futura no Python, consulte PEP 457 - Sintaxe para parâmetros apenas de posição .
Parâmetros somente posicionais podem levar a APIs mais limpas e claras, tornar as implementações em Python puro de módulos somente C mais consistentes e fáceis de manter, e como os parâmetros somente posicionais requerem muito pouco processamento, eles levam a um código Python mais rápido.
/
token, porque "é a operação inversa de*
" shows, que o Python é um pouco louco. É um tipo de sinestesia.Barra (/) indica que todos os argumentos anteriores a ele são apenas argumentos posicionais. O recurso de argumentos apenas posicionais foi adicionado no python 3.8 após a aceitação do PEP 570 . Inicialmente, essa notação foi definida no PEP 457 - Notação para notação para parâmetros somente posicionais
Vamos dar o seguinte exemplo
Aqui, nos parâmetros de definição de função acima, a e b são apenas posicionais, enquanto x ou y podem ser posicionais ou de palavra-chave.
As chamadas de função a seguir são válidas
Porém, a chamada de função a seguir não é válida, o que gera uma exceção TypeError, já que a, b não são passados como argumentos posicionais, e sim como palavra-chave
Muitas funções embutidas em python aceitam apenas argumentos posicionais, onde passar argumentos por palavra-chave não faz sentido. Por exemplo, a função interna len aceita apenas um argumento posicional (apenas). Quando a chamada len como len (obj = "olá mundo") prejudica a legibilidade, consulte a ajuda (len).
Os parâmetros apenas posicionais facilitam a manutenção das funções subjacentes da c / biblioteca. Ele permite que nomes de parâmetros apenas de parâmetros posicionais sejam alterados no futuro sem risco de quebrar o código do cliente que usa API
Por último, mas não menos importante, apenas parâmetros posicionais nos permitem usar seus nomes para serem usados em argumentos de palavras-chave de comprimento variável. Veja o exemplo a seguir
Parâmetros apenas posicionais são melhor explicados aqui em Tipos de argumentos de função em python: Parâmetros apenas posicionais
A sintaxe dos parâmetros apenas de posição foi adicionada oficialmente ao python3.8. Caixa que há de novo python3.8 - apenas argumentos posicionais
Relacionados com PEP: PEP 570 - Parâmetros somente de posição do Python
fonte