Discuss / Python / 作业

作业

Topic source

EddieLau_

#1 Created at ... [Delete] [Delete and Lock User]

第一题:

import hashlib

def login(user, password):
    if user in db.keys(): 
        return db.get(user) == hashlib.md5(password.encode('utf-8')).hexdigest()
    return False

第二题:

def login(username, password):
    user = db.get(username)
    if user: return user.password == get_md5(password + user.salt)
    else: return False

roinuJicniVaD

#2 Created at ... [Delete] [Delete and Lock User]

第二题为什么user.password没有调用login函数里的password,而是User实例的password属性?

野猪样蛙

#3 Created at ... [Delete] [Delete and Lock User]

因为例子里

user = db[username] = db.get(username) 反映的都是创建 User 的实例

以 'michael' 为例:

user = db['michael'] = User('michael', '123456')  创建了 User 的 'michael' 实例

所以

user.password 等于是 User('michael', '123456').password, 也就是一个 User 实例的属性, 而非后面作为字符串出现的password。

  • 1

Reply