Python 如何使局部变量用于全局变量?
所以我尝试用python编写csv中的行,我的代码如下所示。但它不会写,因为这些变量是局部的?我该怎么做?非常感谢。没有错误显示,csv中没有写入行。 当我在mac上的pycharm中运行它时,它可以工作,但在我将它设置为windows上的exe后,它不会写入行Python 如何使局部变量用于全局变量?,python,csv,tkinter,global,local,Python,Csv,Tkinter,Global,Local,所以我尝试用python编写csv中的行,我的代码如下所示。但它不会写,因为这些变量是局部的?我该怎么做?非常感谢。没有错误显示,csv中没有写入行。 当我在mac上的pycharm中运行它时,它可以工作,但在我将它设置为windows上的exe后,它不会写入行 types=[] row=[] col=[] image_number=[] def click(event): global rectangle global image_list1 types.append(
types=[]
row=[]
col=[]
image_number=[]
def click(event):
global rectangle
global image_list1
types.append(v.get())
row.append(event.x)
col.append(event.y)
filename = image_list1[0]
image_number.append(filename)
x1, y1 = (event.x -3), (event.y- 3)
x2, y2 = (event.x + 3), (event.y + 3)
rectangle=w.create_rectangle(x1, y1, x2, y2,fill=color[v.get()-1],outline="")
if image_length:
root.tk()
w.bind("<Button-1>", click)
root=mainloop()
d.writerows(zip(image_number, types, row, col))
types=[]
行=[]
col=[]
图像_编号=[]
def单击(事件):
全局矩形
全局图像列表1
type.append(v.get())
行追加(event.x)
列追加(事件y)
文件名=图像\u列表1[0]
图像号。追加(文件名)
x1,y1=(事件x-3),(事件y-3)
x2,y2=(事件x+3),(事件y+3)
矩形=w.创建矩形(x1,y1,x2,y2,fill=颜色[v.get()-1],outline=”“)
如果图像长度:
root.tk()
w、 绑定(“,单击)
root=mainloop()
d、 writerows(zip(图像编号、类型、行、列))
这就是return
语句的作用:
types=[]
row=[]
col=[]
image_number=[]
def click(event):
global rectangle
global image_enum
global image_list1
types.append(v.get())
row.append(event.x)
col.append(event.y)
filename = image_list1[0]
image_number.append(filename)
return (image_number, types, row, col)
if image_length:
image_number, types, row, col = click(event)
d.writerows(zip(image_number, types, row, col))
或者,如果你想变得花哨:
if image_length:
d.writerows(zip(*click(event)))
当然,您需要先定义一个事件 你也可以只写
d.writerows(zip(*点击(事件))
然后你就赢了我两秒…:我想知道,返回的image\u number
是否应该是filename
。否则,您每次都会将一个不断增长的列表传递给zip
。这里可能有一些问题(比如,对于初学者来说,没有使用的全局变量)。它仍然不起作用,奇怪的是它在ios上起作用,但在windows上不起作用。有人知道为什么吗?