python - python中的简单登录程序

标签 python python-2.7

我已经用 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/

相关文章:

python-2.7 - 使用Python ElementTree.register_namespace读取GPX?

python - Python 3 中排序函数与比较函数的等效项

python - 使用 lambda 从头开始​​删除列表条目

python - python 如何等待批处理 SGE 脚本完成执行?

python - 将项目添加到空的 pandas DataFrame

python - 理解装饰器函数中的作用域和 *args 和 **kwargs

python - 无法在正则表达式中使用变量

python - 使用 groupBy 和过滤器创建新数据框

python - Django:用户登录不工作

python - 尽管该命令在终端上有效,但子进程未运行生成的命令