假设我有一个类定义为:
class Wall(object):
def __init__(self, color):
self.color = color
我想自动跟踪颜色转换。
也就是说,如果我将我的班级声明如下:
wall = Wall('red')
然后改变颜色:
wall.color = 'green'
我想自动得到一个名单
['green', 'red']
以这样的方式创建,如果我继续:
wall.color = ['yellow']
我得到清单:
['yellow', 'green']
等等。
到目前为止我所做的尝试都不起作用:
class Wall(object):
def __init__(self, color):
self.color = color
self._last_two_colors = [self.color, None]
def change_color(self, color):
self._last_two_colors[1] = self._last_two_colors[0]
self._last_two_colors[0] = self.color
return self._last_two_colors
我的初始版本,不工作,很遗憾:
class Wall(object):
def __init__(self, color):
self._last_two_colors = []
self.color = color
@property
def last_two_colors(self):
return self._last_two_colors
@last_two_colors.setter
def last_two_colors(self):
self._last_two_colors = [self.color]+self._last_two_colors
self._last_two_colors = self._last_two_colors[:2]
return self._last_two_colors
应该注意的是,我不希望调用方法change_color,它必须在更新颜色时自动调用。
有什么主意吗?
事先谢谢。