【发布时间】:2014-03-12 14:57:42
【问题描述】:
def pupiluserpass():
global usernames, passwords
usernameinp = pupiluserinputbox.get()
passwordinp = pupilpasswordinputbox.get()
为什么会出现错误:NameError: global name 'pupiluserinputbox' 未定义?
输入框在另一个过程中:
def pupillogin():
ruapupil = Label(app, text = "If you're a pupil log in here:")
ruapupil.grid(row = 1, columnspan = 3, sticky = W)
pupilusername = Label(app, text = "Please enter your Username:")
pupilusername.grid(row = 2, column = 0, sticky = W)
pupiluserinputbox = Entry(app, width = 10)
pupiluserinputbox.grid(row = 2, column = 1, sticky = W)
pupilpassword = Label(app, text = "Please enter your Password:")
pupilpassword.grid(row = 3, column = 0, sticky = W)
pupilpasswordinputbox = Entry(app, width = 10)
pupilpasswordinputbox.grid(row = 3, column = 1, sticky = W)
pupilenter = Button(app, text = "Enter!", command = pupiluserpass)
pupilenter.config(height = 1, width = 8)
pupilenter.grid(row = 4, column = 1, sticky = W)
我怎样才能成功地完成这项工作而不得到NameError?
【问题讨论】:
-
在一个函数中定义的变量在单独的函数中不可见。使用
global变量或将函数放在一个类中并将值作为属性分配给self。 -
+1 用于后一种解决方案 ;-)
标签: python python-3.x tkinter nameerror