我有一个类(简化视图):
class Record():
OrderStatusMapping = dict(zip(['0', '1', '2'], ['NEWO', 'PARF', 'FILL']))
def __init__(self):
self._OrderStatus = None
@property
def OrderStatus(self):
return self.OrderStatusMapping.get(self._OrderStatus)
@OrderStatus.setter
def OrderStatus(self, value):
self._OrderStatus = value
现在这个类是从一个不同的模块调用的,使用如下:
from core.record import Record
r = Record()
r.OrderStatus = '2'
但是由于某种原因,当我稍后调用r.OrderStatus
call 它返回'2'
not 'FILL'
。在 VisualStudio 中调试变量我可以看到,实际上它在我调用r.OrderStatus = '2'
它时出现,它从不使用,@OrderStatus.setter
而是似乎动态地使其成为自己的变量OrderStatus
,不使用 setter,因此从不设置self._OrderStatus
.
我在使用 getter 和 setter 时做了一些明显不好的事情吗?为什么没有按应有的方式称呼他们?