字典引用不断抛出未解决的引用

2024-04-25 06:51:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用python构建一个类似模拟终端的程序,并尝试为它构建一个登录系统。你知道吗

我的目录设置经过多次修改后,最终显示如下:

pythonapp-harlker/
    __init__.py
    loginCheck.py
    main.py
    userlist.py

__init__.py为空,main.py的主代码块如下所示:

from loginCheck import *
loginFunc = Login()

loginFunc.login()
if loginFunc.login().checkPass == True:
    print("Welcome %s!" % (username))

导入loginCheck不会返回任何错误,所以我自然地查看了loginCheck.py。你知道吗

import sys, platform, importlib

import hashlib
from userlist import *

class Login:
    def login(self):
        username = input("Username: ")
        password = input("Password: ")
        password = str.encode(password)
        password = str(hashlib.md5(password).hexdigest())
        if username in users:
            userPassAndIndex = users.get(username)
            if password == userPassAndIndex[0]:
                checkPass = True
                value = userPassAndIndex[1]
            else:
                self.login()
        else:
            self.login()

查看调试器,它一直告诉我loginCheck.py无法从userlist.py导入字典。你知道吗

userlist.py

users = {
    'localAdmin10': ["086e717a4524329da24ab80e0a9255e2", 0],
    'orlovm': ["505ec2b430fa182974ae44ede95ca180", 1],
    'testUser10': ["90e611f269e75ec5c86694f900e7c594", 2],
    'torradiRemote': ["0b841ebf6393adac25950a215aecc3d1", 3],
}

此外,在运行python代码(从main.py)时,代码似乎无法检测输入的用户名和密码是否正确。你知道吗

我已经查看了大量的stackOverflow页面和外部源代码,但我现在正处于一种“程序员阻塞”状态。你知道吗


Tags: 代码pyimportselfifinitmainusername
1条回答
网友
1楼 · 发布于 2024-04-25 06:51:18

您的代码在Python 3+上运行良好,在Python 2.7上运行中断,让我解释一下原因:

  • 希望与python2.7一起使用的输入函数是raw_input,而不是input。python2.7中的input函数将用户输入作为Python表达式进行计算,因此在您的情况下,无法找到它并发送异常
  • raw_input被重命名为input启动python3.0

总之,您只需根据您希望使用的Python版本选择正确的函数。raw_input对于Python2.7,input对于Python3。你知道吗

相关问题 更多 >