ACTUALIZACIÓN: Aún no se ha resuelto cuando la función siguiente se llama myfunc(1, 200)
.
deprecated_renamed_argument
permite desaprobar un argumento de palabra clave eliminado. Sin embargo, al hacerlo, no se puede establecer la palabra clave obsoleta. Siempre se le da su valor predeterminado:
>>> 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]
El valor predeterminado de la palabra clave obsoleta se puede cambiar si se usa como un argumento posicional, pero en ese caso no se genera la advertencia de obsolescencia:
>>> myfunc(1, 200)
1 200
oh, wow, esto es un desastre.
Intentaré ocuparme de ello durante el fin de semana.
Podría tener una solución. Consulte el n. ° 9981.
Me pregunto cuántos paquetes posteriores se verán afectados. Dado que no hemos recibido informes de errores hasta ahora, este uso probablemente sea poco común.
gracias @pllim. Parece que mis fines de semana se están escapando sin mucho código producido 😥