python的Setter行为

2024-04-19 05:18:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python还很陌生。我在代码中遇到了以下奇怪的行为,这是因为我犯了一个拼写错误

 @property
 def A(self):
     return self._a
 @A.setter
 def A(self,val):
     self._a=val
 @property
 def B(self):
     return self._b
 @A.setter #*********error here******!!
 def B(self,val):
     self._b=val

在代码的某个地方:

 A=x
 B=y

首先,VisualStudio2019-python没有发现这个bug(或者这真的是一个bug?)。其次,AB中的值恰好与我设置为A(本例中为x)的值相同。当遇到行“B=y”时,它没有警告我“B”没有setter。这里展示的行为对python正确吗


Tags: 代码selfreturnheredef地方errorproperty