Chr*_*ith 10 python setter init new-style-class
我有以下大块的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)
Run Code Online (Sandbox Code Playgroud)
理论上应该打印出密码的SHA1,但是从构造函数设置self.password会忽略已定义的属性,只需将值设置为"password1"即可.然后print语句读取"password1"的值.
我知道这是在类和实例上定义的密码,但我不知道如何正确表示它,所以它的工作原理.任何帮助,将不胜感激.
Mat*_*son 14
属性是描述符,描述符仅适用于新式类.尝试:
class User(object): ...
Run Code Online (Sandbox Code Playgroud)
代替:
class User: ...
Run Code Online (Sandbox Code Playgroud)
可以在此处找到描述符的良好指南.
| 归档时间: |
|
| 查看次数: |
2767 次 |
| 最近记录: |