我已经用 python 编写了一个没有任何 GUI 的登录程序。 我知道这是最简单的,但我不明白这个问题。
class login:
def __init__(self,id,pas):
self.id="admin"
self.pas="admin"
def check(id,pas):
print self.id
print lod.id
if(self.id==log.id and self.pas==log.pas):
print "Login success!"
log=login("","")
log.check(raw_input("Enter Login ID:"),
input("Enter password: "))
print "Login Page"
错误: 输入登录ID:admin 输入密码:admin
Traceback (most recent call last):
File "C:/Python27/login.py", line 15, in <module>
input("Enter password: "))
File "<string>", line 1, in <module>
NameError: name 'admin' is not defined
最佳答案
您使用 input()
而不是 raw_input()
作为密码。
input()
等价于eval(raw_input())
;如果您输入 admin
作为密码,它将被解释为 Python 代码。 admin
然后被解释为变量名称,并且由于该名称在您的代码中不存在,因此引发了 NameError
。
使用:
log.check(raw_input("Enter Login ID:"),
raw_input("Enter password: "))
相反。
接下来,您的 check()
方法将不起作用,因为您忘记了 self
参数并试图引用名称 lod
那不存在。以下会更好:
class login:
def __init__(self, id, pas):
self.id = id
self.pas = pas
def check(self, id, pas):
print self.id
if self.id == id and self.pas == pas:
print "Login success!"
log = login("admin", "admin")
log.check(raw_input("Enter Login ID:"),
raw_input("Enter password: "))
关于python - python中的简单登录程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22170848/