我已经阅读了之前关于这个错误的文章,但是我不能确定我做错了什么。请有人帮助我理解我做错了什么,谢谢。
from tkinter import *
class Passwordchecker():
def __init__(self):
self= Tk()
self.geometry("200x200")
self.title("Password checker")
self.entry=Entry(self)
self.entry.pack()
self.button=Button(self,text="Enter",command= lambda: self.PassCheck(self.entry,self.label))
self.button.pack()
self.label=Label(self,text="Please a password")
self.label.pack()
self.mainloop()
def PassCheck(self1,self2):
password = self1.get()
if len(password)>=9 and len(password)<=12:
self2.config(text="Password is correct")
else:
self2.config(text="Password is incorrect")
run = Passwordchecker()
是什么引发了这个错误?
您将收到以下错误消息:
因为当初始化
Passwordchecker()
的实例时,它会偶然发现__init__()
的mainloop()
方法,该方法不允许程序识别属于该实例的任何其他方法。根据经验,永远不要在__init__()
内部运行mainloop()
。这完全修复了上面的错误消息。但是,我们还有其他事情要解决,为此,让我们重新设计您的计划:设计
最好使用在
__init__()
内部调用的其他方法来绘制图形用户界面。我们称之为initialize_user_interface()
。当谈到
PassCheck()
时,首先需要将对象本身传递给此方法。这意味着传递给此方法的第一个参数是self
。这是我们实际上需要的唯一参数PassCheck(self)
,因为您可以从这个方法访问剩余的参数,而这些参数是您无用地传递给它的。程序
下面是您需要的完整程序:
演示
下面是运行程序的屏幕截图:
相关问题 更多 >
编程相关推荐