python - 为什么我收到错误 : "NameError: global name ' pupiluserinputbox' is not defined"

标签 python python-3.x tkinter nameerror

def pupiluserpass():
    global usernames, passwords
    usernameinp = pupiluserinputbox.get()
    passwordinp = pupilpasswordinputbox.get()

为什么我会收到错误:NameError: 全局名称 '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

最佳答案

对于,您应该将携带这些错误属性的变量设置为self,即该对象的当前实例。这是在内的其他方法中访问这些变量的实际方法。例如:

def pupiluserpass():
    ...
    usernameinp = self.pupiluserinbox.get()
    passwordinp = self.pupilpasswordinputbox.get()

def pupillogin():
    ...
    self.pupiluserinputbox = Entry(app, width = 10)
    self.pupiluserinputbox.grid(row = 2, column = 1, sticky = W)
    ...
    self.pupilpasswordinputbox = Entry(app, width = 10)
    self.pupilpasswordinputbox.grid(row = 3, column = 1, sticky = W)

您也可以在此处进行大量 global 声明,但最好使用 self

关于python - 为什么我收到错误 : "NameError: global name ' pupiluserinputbox' is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22355401/

相关文章:

python - 制作 Tkinter Photoimage 使 python 程序崩溃

python - SQLAlchemy.exc.UnboundExecutionError : Could not locate a bind configured on mapper Mapper|SellsTable|sellers or this Session 错误

python - 没有名为 urllib3 的模块

python - 使用 python datetime 从星期几和日期推断年份

python - 将 .lower() 函数应用于列表中所有单词大小写的字符串

python-3.x - 如何使用google2pandas从Google Analytics(分析)中提取10,000多行

python - brew 安装Python/matplotlib不工作: No module named _tkinter

python - sqlite3 python 查询包含多个变量错误

python - 如何根据分辨率将已经分割的日期分成两列?

python - Tkinter (Python 3.x) 中的不同 "Drag and Drop"图像