ATUALIZAÇÃO: ainda não foi resolvido quando a função abaixo é chamada de myfunc(1, 200)
.
deprecated_renamed_argument
permite descontinuar um argumento de palavra-chave removido. No entanto, ao fazer isso, a palavra-chave obsoleta não pode ser definida. Sempre recebe seu valor padrão:
>>> from astropy.utils.decorators import deprecated_renamed_argument
>>> @deprecated_renamed_argument('b', None, '4.1')
>>> def myfunc(a, b=3):
>>> print(a, b)
>>> return
>>> myfunc(1, b=200)
1 3
WARNING: AstropyDeprecationWarning: "b" was deprecated in version 4.1 and will be removed in a future version. [warnings]
O valor da palavra-chave obsoleta pode ser alterado do padrão se for usado como um argumento posicional, mas, nesse caso, o aviso de suspensão de uso não é gerado:
>>> myfunc(1, 200)
1 200
oh, uau, isso é uma bagunça.
Vou tentar cuidar disso no fim de semana.
Eu posso ter uma solução. Consulte # 9981.
Eu me pergunto quantos pacotes downstream são afetados. Dado que não recebemos nenhum relatório de bug até agora, este uso é provavelmente incomum.
obrigado @pllim. Parece que meus fins de semana estão diminuindo com a pouca produção de código 😥