小编Chr*_*ith的帖子

如何从__init__调用属性设置器

我有以下大块的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"的值.

我知道这是在类和实例上定义的密码,但我不知道如何正确表示它,所以它的工作原理.任何帮助,将不胜感激.

python setter init new-style-class

10
推荐指数
1
解决办法
2767
查看次数

标签 统计

init ×1

new-style-class ×1

python ×1

setter ×1