在 python 中弃用 class 的属性
Deprecating properties of class in python
我试图弃用 class 的 属性。
class A:
def __init__(self,
variable1: int,
##to be deprecated
variable2: int )
{....}
预期行为:如果用户尝试使用变量 2,他应该收到警告,指出它已被弃用。
您可以将 variable2
实现为 属性。
import warnings
class A:
def __init__(self, variable1: int, variable2: int):
self.variable1 = variable1
self._variable2 = variable2
@property
def variable2(self):
warnings.warn('The use of variable2 is deprecated.', DeprecationWarning)
return self._variable2
@variable2.setter
def variable2(self, value: int):
warnings.warn('The use of variable2 is deprecated.', DeprecationWarning)
self._variable2 = value
您可以只给它一个 None
默认值并确保它没有被设置:
import warnings
class A:
def __init__(
self,
variable1,
variable2=None,
):
if variable2 is not None:
warnings.warn(
"variable2 is deprecated", DeprecationWarning
)
与 kwargs 一起工作:
>>> A(1, variable2=123)
<ipython-input-4-e722737121fe>:12: DeprecationWarning: variable2 is deprecated
使用位置参数:
>>> A(1, 123)
<ipython-input-4-e722737121fe>:12: DeprecationWarning: variable2 is deprecated
我试图弃用 class 的 属性。
class A:
def __init__(self,
variable1: int,
##to be deprecated
variable2: int )
{....}
预期行为:如果用户尝试使用变量 2,他应该收到警告,指出它已被弃用。
您可以将 variable2
实现为 属性。
import warnings
class A:
def __init__(self, variable1: int, variable2: int):
self.variable1 = variable1
self._variable2 = variable2
@property
def variable2(self):
warnings.warn('The use of variable2 is deprecated.', DeprecationWarning)
return self._variable2
@variable2.setter
def variable2(self, value: int):
warnings.warn('The use of variable2 is deprecated.', DeprecationWarning)
self._variable2 = value
您可以只给它一个 None
默认值并确保它没有被设置:
import warnings
class A:
def __init__(
self,
variable1,
variable2=None,
):
if variable2 is not None:
warnings.warn(
"variable2 is deprecated", DeprecationWarning
)
与 kwargs 一起工作:
>>> A(1, variable2=123)
<ipython-input-4-e722737121fe>:12: DeprecationWarning: variable2 is deprecated
使用位置参数:
>>> A(1, 123)
<ipython-input-4-e722737121fe>:12: DeprecationWarning: variable2 is deprecated