Python 属性错误:';功能';对象没有属性错误
我按下按钮,写入胶片,然后再次按下按钮添加胶片。我得到AttributeError:“function”对象没有属性“enter”错误函数中的局部变量作为该函数的属性不可见。对于嵌套范围,只需直接使用名称:Python 属性错误:';功能';对象没有属性错误,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我按下按钮,写入胶片,然后再次按下按钮添加胶片。我得到AttributeError:“function”对象没有属性“enter”错误函数中的局部变量作为该函数的属性不可见。对于嵌套范围,只需直接使用名称: 此处,enter将作为闭包附加到addFilm(),Python将把父作用域enter附加到函数,以便以后取消引用。您确实需要存储返回的值;我猜您想在这里将其分配给film。现在我得到了TypeError:无法将'tuple'对象隐式转换为str错误:/请发布完整的堆栈跟踪。这可能是add.
此处,
enter
将作为闭包附加到addFilm()
,Python将把父作用域enter
附加到函数,以便以后取消引用。您确实需要存储返回的值;我猜您想在这里将其分配给film
。现在我得到了TypeError:无法将'tuple'对象隐式转换为str错误:/请发布完整的堆栈跟踪。这可能是add.enter.get()
行,因为add()
函数没有名为enter
的属性。可能希望将其作为参数添加到addFilm()
,并仅使用enter.get()
,另外,在创建“addFilm!”按钮时,使用command=lambda enter=enter:addFilm(enter)`将其传递给函数。
#-*- coding: cp857 -*-
from tkinter import *
###########################################################
rt=Tk()
rt.title("MY FILM ARCHIVE v1")
rt.resizable(False, False)
###########################################################
def add():
def addFilm():
db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
add.enter.get()
global film
film=enter[addingform,"text"]
db.write(film + "\n")
db.flush()
db.close()
addingform=Tk()
addingform.title("Add Film!")
addingform.resizable(False,False)
label=Label(addingform,text="Enter your's film:",fg="red",font=("Flux",15, "bold"))
label.pack()
enter=Entry(addingform)
enter.pack()
button=Button(addingform, text="Add!",command=addFilm, font=("Flux",15, "bold"))
button.pack()
button=Button(text="Add Film!",command=add, font=("Flux",15, "bold"))
button.pack(expand="yes", anchor="center")
mainloop()
def add():
def addFilm():
db = open(r"C:\Users\PC\Desktop\db.txt", "a+")
global film
film = enter.get()
db.write(film + "\n")
db.flush()
db.close()