ОБНОВЛЕНИЕ: это все еще не решено, когда функция ниже вызывается как myfunc(1, 200)
.
deprecated_renamed_argument
позволяет отказаться от аргумента удаленного ключевого слова. Однако при этом нельзя установить устаревшее ключевое слово. Ему всегда присваивается значение по умолчанию:
>>> 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]
Устаревшее значение ключевого слова может быть изменено со значения по умолчанию, если оно используется в качестве позиционного аргумента, но в этом случае предупреждение об устаревании не возникает:
>>> myfunc(1, 200)
1 200
о, вау, это беспорядок.
Постараюсь позаботиться об этом на выходных.
Я могу исправить. Пожалуйста, смотрите # 9981.
Интересно, сколько нижестоящих пакетов затронуто. Учитывая, что до сих пор мы не получали отчетов об ошибках, такое использование, вероятно, необычно.
спасибо @pllim. Похоже, что мои выходные ускользают из-за того, что кода написано не так много 😥