繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM