为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 的 if 语句中为函数分配名称

在 Python 的 if 语句中为函数分配名称

ABOUTYOU 2023-03-16 09:35:51
我是 python 的新手,非常困惑。如果有人可以帮助我将由此创建的矩形分配给名称“Obj3”,那将非常有帮助(您可以在下面看到)。if event.char == "c": canvas.create_rectangle(x, y, x + 100, y + 50)这是我的程序代码:-app = tk.Tk()app.title("VAB")app.iconbitmap(r"C:\Users\shafa\OneDrive\Documents\VAB\Sprites\VAB-Icon.ico")w, h =1200, 800x, y = w//2, h//2canvas = tk.Canvas(app, width = w, height = h)canvas.pack()Obj1 = canvas.create_rectangle(x, y, x + 100, y + 200)points = [650, 400, 600, 330, 550, 400]Obj2 = canvas.create_polygon(points, fill='', width = 1, outline = 'black')def creation(event):    if event.char == "c": canvas.create_rectangle(x, y, x + 100, y + 50) = Obj3app.bind("<Key>", keyinput)app.mainloop()从这段代码中,通过添加 = Obj3 来分配事件创建的矩形 Obj3 是行不通的,并且会导致错误。我想在不发生该错误的情况下为其分配一个名称。谢谢您阅读此篇。
查看完整描述

1 回答

?
繁花如伊

TA贡献2012条经验 获得超12个赞

您的语法是倒退的,为了超出范围分配,您需要一个global声明。


def creation(event):

    global Obj3

    if event.char == "c": Obj3  = canvas.create_rectangle(x, y, x + 100, y + 50)

不过,一般来说,全局变量不是推荐的做事方式。你会得到意大利面条式的代码,而且很难支持多线程。最好将引用保留在本地或封装在一个类中。


查看完整回答
反对 回复 2023-03-16
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信