是否可以删除用Python中的函数创建的画布对象?

是否可以删除用Python中的函数创建的画布对象?,python,tkinter,canvas,tkinter-canvas,Python,Tkinter,Canvas,Tkinter Canvas,我想问一下,在Python中是否可以删除使用方法创建的画布对象。我的示例代码: import tkinter window = tkinter.Tk() canvas = tkinter.Canvas(width=1000, height=600, bg="black") canvas.pack() def draw_yellow(x1, y1, x2, y2): canvas.create_line(x1, y1, x2, y2, fill="yello

我想问一下,在Python中是否可以删除使用方法创建的画布对象。
我的示例代码:

import tkinter
window = tkinter.Tk()
canvas = tkinter.Canvas(width=1000, height=600, bg="black")
canvas.pack()

def draw_yellow(x1, y1, x2, y2):
    canvas.create_line(x1, y1, x2, y2, fill="yellow")

def draw_white(x1, y1, x2, y2):
    canvas.create_line(x1, y1, x2, y2, fill="white")

line1 = draw_yellow(20, 300, 100, 300)
line2 = draw_white(20, 300, 100, 300)
line3 = draw_white(40, 200, 60, 200)
canvas.delete(line2)

但是,
canvas.delete(第2行)
不适用于这种创建画布对象的方法。

是否可以通过某种方式绘制和删除使用函数绘制的对象?谢谢您的回答。

画布的创建函数返回一个标识符,您可以使用该标识符删除它们。您所做的是正确的,只是没有在函数中返回标识符。更改绘图函数,使其返回如下值:

def draw_yellow(x1, y1, x2, y2):
    return canvas.create_line(x1, y1, x2, y2, fill="yellow")

def draw_white(x1, y1, x2, y2):
    return canvas.create_line(x1, y1, x2, y2, fill="white")
然后,您将能够将这些值分配给变量(与您现在的做法相同),并将其作为参数传递给
.delete()
方法:

canvas.delete(line2)