Python 属性错误:';功能';对象没有属性错误

Python 属性错误:';功能';对象没有属性错误,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我按下按钮,写入胶片,然后再次按下按钮添加胶片。我得到AttributeError:“function”对象没有属性“enter”错误函数中的局部变量作为该函数的属性不可见。对于嵌套范围,只需直接使用名称: 此处,enter将作为闭包附加到addFilm(),Python将把父作用域enter附加到函数,以便以后取消引用。您确实需要存储返回的值;我猜您想在这里将其分配给film。现在我得到了TypeError:无法将'tuple'对象隐式转换为str错误:/请发布完整的堆栈跟踪。这可能是add.

我按下按钮,写入胶片,然后再次按下按钮添加胶片。我得到AttributeError:“function”对象没有属性“enter”错误

函数中的局部变量作为该函数的属性不可见。对于嵌套范围,只需直接使用名称:


此处,
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()