Python 无状态地使用tkinter.Canvas

Python 无状态地使用tkinter.Canvas,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,有没有一种像javascript或.NET画布那样绘制ttkinter.Canvas的方法 即drawline(),而不存储该线条的对象,该线条可以在以后进行操作。我不确定您所说的“存储对象”是什么意思。画布为您绘制的每件事物提供一个id,但您不必存储它。您不能阻止画布为对象分配id,但可以完全忽略它 如果你认为这是一个问题,你想解决什么问题 [编辑]澄清:是的,解释器为绘制的每件事物保留某种数据。但它不是Python对象意义上的对象。它更像是内存中描述所绘制内容的位置。据我所知,不是。HTML

有没有一种像javascript或.NET画布那样绘制ttkinter.Canvas的方法


即drawline(),而不存储该线条的对象,该线条可以在以后进行操作。

我不确定您所说的“存储对象”是什么意思。画布为您绘制的每件事物提供一个id,但您不必存储它。您不能阻止画布为对象分配id,但可以完全忽略它

如果你认为这是一个问题,你想解决什么问题


[编辑]澄清:是的,解释器为绘制的每件事物保留某种数据。但它不是Python对象意义上的对象。它更像是内存中描述所绘制内容的位置。

据我所知,不是。HTML5画布只是一个可以“绘制”的位图画布。Tkinter画布是类似SVG的矢量图形,因此它保存每个对象的记录


您可能需要进行调查,或者。

如果它存储一个id,它必须在某个地方存储一个对象(当然?)。如果我调用1000000个draw调用,内存使用是否会增加?其他画布实现只操作刚刚测试过的像素:内存确实会随着每次调用而增加,因此我们可以安全地假设它正在为每次绘制调用存储一个对象。是的,内存会随着添加到画布的每件事情而增加一点点,这是无法避免的。如果要绘制1000000个对象,画布不是一个好的选择。你可能想考虑一些其他的工具。为什么要投票?这是没有帮助,还是不是你想要的答案?对不起,Bryan,我的意思是要求一种通过操纵像素而不添加对象来绘制的方法。如果调用draw_line(),将创建一个line对象,我可以在绘制后移动它。如果我需要递归地在彼此的顶部绘制多个对象,这会占用太多内存。你明白吗?