我有以下 python 代码块:
import hashlib
class User:
def _set_password(self, value):
self._password = hashlib.sha1(value).hexdigest()
def _get_password(self):
return self._password
password = property(
fset = _set_password,
fget = _get_password)
def __init__(self, user_name, password):
self.password = password
u = User("bob", "password1")
print(u.password)
这在理论上应该会打印出密码的 SHA1,但是从构造函数中设置 self.password 会忽略已定义的属性,而只会将值设置为“password1”。然后打印语句读取“password1”的值。
我知道这与在类和实例上定义的密码有关,但我不确定如何正确表示它才能正常工作。任何帮助将不胜感激。
最佳答案
关于python - 我如何从 __init__ 调用属性 setter ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1840628/