askopenfilename tkinter函数和全局变量

时间:2016-10-25 07:08:54

标签: python python-3.x variables

我试图做一些事情让我公司的用户通过一些个性化改变他们的电子邮件的默认签名。

所以当我点击此按钮时,我不明白为什么:

 Button(master, text='Insert  Image',command=insert_image).grid(row=12,column=1,sticky=W,pady=4)

它称之为:

global image_path

def insert_image():
    image_path = filedialog.askopenfilename(initialdir="X:\\", title="Select the image you want to add")
    image_path = 'X:\\' + str(image_path)

它允许我选择文件,它似乎将它存储在变量中,但稍后,当我必须在这里使用变量时:

    if image_path != "":
        signature.write('<br><br><img src="{}" alt="prova"><br><br>\n'.format(image_path))

它给出了

NameError: name 'image_path' is not defined 

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您需要在全局范围内创建变量,然后在函数内使用global

image_path = ""

def insert_image():
    global image_path
    image_path = filedialog.askopenfilename(...)
    ...