为什么我会出现“TypeError: 'Button' object is not callable”?

时间:2021-05-13 19:13:45

标签: python tkinter

我正在尝试制作一个文本编辑器。我正在尝试添加一个选项来打开文件,但第 16 行出现错误。TypeError: 'Button' object is not callable

这是我的代码:

from tkinter import *
from tkinter import filedialog

root = Tk()

root.title("Microsoft Word")

def open_file():
    file_location = ''
    file_location = filedialog.askopenfilename()
    f = open(file_location,'r')
    x = f.read()
    f.close()
    print(x)

heading = Label(text = 'Microsoft Word', font='Helvetica 40 bold')
heading.grid(row = 0,column = 0)

text = Text()
text.grid(row = 1,column = 0)

open = Button(text = 'Open',command = open_file)
open.grid(row = 2,column = 0)

save = Button(text = 'Save')
save.grid(row = 3,column = 0)

root.mainloop()

1 个答案:

答案 0 :(得分:2)

在您的代码中,您将 open 定义为作为 Button 之一的变量

问题在于 open 是一个内置函数,当你这样做时,它会被重新定义为一个 Button 对象。

现在,当您尝试使用函数 open 打开文件时,会出现该错误,因为 open 已被定义为 Button

btn = Button(text = 'Open',command = open_file)
btn.grid(row = 2,column = 0)