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 的str
PYTHON:STR或PYTHON:PYTHON的序列:STR 参数的旧名称。
- new_name :
str
或 sequence 的str
或None
PYTHON:字符串或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
每个参数都有值。