[英]Assigning a function a name in an if statement in Python
我是 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, 800
x, y = w//2, h//2
canvas = 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) = Obj3
app.bind("<Key>", keyinput)
app.mainloop()
从这段代码中,通过添加 = Obj3 来分配创建矩形 Obj3 的事件不起作用并导致错误。 我想为它分配一个名称而不会发生该错误。 谢谢您阅读此篇。
您的语法是向后的,为了分配 scope,您需要一个global
声明。
def creation(event):
global Obj3
if event.char == "c": Obj3 = canvas.create_rectangle(x, y, x + 100, y + 50)
不过,一般来说,全局变量不是推荐的做事方式。 您会得到意大利面条代码,并且很难支持多线程。 最好将引用保存在本地或封装在 class 中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.