deprecated_renamed_argument#
- astropy.utils.decorators.deprecated_renamed_argument(old_name, new_name, since, arg_in_kwargs=False, relax=False, pending=False, warning_type=<class 'astropy.utils.exceptions.AstropyDeprecationWarning'>, alternative='', message='')[源代码]#
弃用a _renamed_ 或 _removed_ 函数参数。
修饰符假定
old_name从函数签名和new_name在 相同的位置 在签名中。如果old_name参数是在调用修饰函数时给定的,修饰符将捕捉它并发出一个弃用警告并将其作为new_name争论。- 参数:
- old_name :
str或 sequence 的strPYTHON:STR或PYTHON:PYTHON的序列:STR 参数的旧名称。
- new_name :
str或 sequence 的str或NonePYTHON:字符串或PYTHON:PYTHON的序列:STR或PYTHON:无 参数的新名称。将此设置为
None删除论点old_name而不是重命名它。- since :
str或 number 或 sequence 的str或 numberPYTHON:STR或NUMBER或PYTHON:PYTHING:STR或NAME 旧参数被弃用的版本。
- arg_in_kwargs : bool 或 sequence 的 bool ,可选Bool或python:bool序列,可选
如果参数不是命名参数(例如,它是要由
**kwargs)将此设置为True. 否则,如果new_name在修饰函数的签名中找不到。默认为False.- relax : bool 或 sequence 的 bool ,可选Bool或python:bool序列,可选
如果
False一TypeError如果两者都有new_name和old_name都给了。如果True的值new_name使用并发出警告。默认为False.- pending : bool 或 sequence 的 bool ,可选Bool或python:bool序列,可选
如果
True这将隐藏弃用警告并忽略相应的relax参数值。默认为False.- warning_type :
Warning警告 发出警告。默认为
AstropyDeprecationWarning.- alternative :
str,可选Python:字符串,可选 在下列情况下,用户可以使用替代函数或类名来代替不推荐使用的对象:
new_name没有。如果提供了此替代方案,则不推荐警告将告诉用户。- message :
str,可选Python:字符串,可选 自定义警告消息。如果提供的话,那么
since和alternative选项将不起作用。
- old_name :
- 加薪:
TypeError如果在函数签名中找不到新的参数名称,并且u kwargs中的arg_为False,或者如果它用于否决
*args-,**kwargs-就像争论。在运行时,如果在调用函数时同时指定了新名称和旧名称,并且“relax=False”,则会引发此类错误。
笔记
decorator应该应用于 name 一个参数被改变了,但它应用了相同的逻辑。
警告
如果
old_name列表或元组是new_name和since还必须是具有相同条目的列表或元组。relax和arg_in_kwarg可以是单个bool(应用于all),也可以是具有相同条目的列表/元组,例如new_name等。实例
以下示例中未显示弃用警告。
否决位置参数或关键字参数:
>>> from astropy.utils.decorators import deprecated_renamed_argument >>> @deprecated_renamed_argument('sig', 'sigma', '1.0') ... def test(sigma): ... return sigma >>> test(2) 2 >>> test(sigma=2) 2 >>> test(sig=2) 2
驳斥在
**kwargs这个arg_in_kwargs必须设置:>>> @deprecated_renamed_argument('sig', 'sigma', '1.0', ... arg_in_kwargs=True) ... def test(**kwargs): ... return kwargs['sigma'] >>> test(sigma=2) 2 >>> test(sig=2) 2
默认情况下,提供new和old关键字将导致异常。如果需要警告,则设置
relax论点:>>> @deprecated_renamed_argument('sig', 'sigma', '1.0', relax=True) ... def test(sigma): ... return sigma >>> test(sig=2) 2
也可以替换多个参数。这个
old_name,new_name和since必须是tuple或list并包含相同数量的条目:>>> @deprecated_renamed_argument(['a', 'b'], ['alpha', 'beta'], ... ['1.0', 1.2]) ... def test(alpha, beta): ... return alpha, beta >>> test(a=2, b=3) (2, 3)
在这种情况下
arg_in_kwargs和relax可以是单个值(应用于所有重命名的参数),也可以是tuple或list每个参数都有值。