python:如何监视变量?变量更改时执行命令
我有一节这样的课python:如何监视变量?变量更改时执行命令,python,Python,我有一节这样的课 类WaveData(对象): 定义初始化(自身,数据): self.data=数据 并创建一个数据对象,绘制一个图形 wave=WaveData([[1,2,3], [7, 5, 6]]) 将matplotlib.pyplot作为plt导入 图=plt.图() plot1,=fig.canvas.figure.subplots().plot(wave.data[0]) plot2,=fig.canvas.figure.subplots().plot(wave.data[1]
类WaveData(对象):
定义初始化(自身,数据):
self.data=数据
并创建一个数据对象,绘制一个图形
wave=WaveData([[1,2,3],
[7, 5, 6]])
将matplotlib.pyplot作为plt导入
图=plt.图()
plot1,=fig.canvas.figure.subplots().plot(wave.data[0])
plot2,=fig.canvas.figure.subplots().plot(wave.data[1])
我希望当我改变波浪值时,绘图将同步改变
wave.data[1]=[5,6,7]#希望数字一起变化
我尝试为WaveData
类添加方法changedata
,但是:
fig
,可能不是reasonale(我可以把fig作为self属性,但事实上,fig还链接了其他没有写在这里的类对象)wave.data[1]=[5,6,7]
类WaveData(对象):
定义初始化(自身,数据):
self.data=数据
def changedata(自身、值、索引):
self.data[索引]=值
#--更改绘图数据的绘图索引--#
全局绘图1,绘图2,图
plot1.set_ydata(self.data[1])
plot2.set_ydata(self.data[2])
图canvas.draw_idle()
#--更改绘图数据的绘图索引--#
我想创建一个监视程序来监视wave.data
value。当检测到值变化时,执行一些操作
如何做?正确:绘图不是一个动态或交互式的过程。您开始使用正确的方法,使用access方法更改波形。现在您必须重新绘制并重新显示结果。。。这可能需要手动关闭第一个打印,具体取决于所选图形包的界面(例如
matplotlib
)
要获得完全交互的体验,您可能需要使用动画软件包,如PyGame,其中视觉显示的更改是软件包假设的一部分。正确:绘图不是动态或交互过程。您开始使用正确的方法,使用access方法更改波形。现在您必须重新绘制并重新显示结果。。。这可能需要手动关闭第一个打印,具体取决于所选图形包的界面(例如
matplotlib
)
要获得完全互动的体验,您可能需要使用一个动画软件包,如PyGame,其中视觉显示的更改是软件包假设的一部分。我们不能利用属性集的优势或在此处获取吗?@mahesh不容易不。。。假设您为
.data
制作了一个getter。。。然后用户仍然可以使用更改数据。数据[0][0]=100
。。。因此,现在您需要将返回的值包装到trap\uuuu setitem\uuuu
等(必须包装它返回的值)等。我们不能利用属性集的优势或在这里获取吗?@mahesh不容易不。。。假设您为.data
制作了一个getter。。。然后用户仍然可以使用更改数据。数据[0][0]=100
。。。因此,现在需要将返回的值包装到trap\uuuu setitem\uuuu
等(必须包装返回的值)等。