私は__init__からプロパティのセッターを呼び出すにはどうすればよいです
-
12-09-2019 - |
質問
私は、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)
これは理論的にはコンストラクタが定義されたプロパティを無視するからしかしself.passwordを設定し、パスワードのSHA1をプリントアウトし、ちょうど「パスワード1」に値を設定する必要があります。 「パスワード1」の値は、print文によって読み込まれます。
私は、これは、インスタンス対クラスで定義されたパスワードにダウンものですが、私はそれが動作しますので、それを正しく表してするかどうかはわかりません知っています。任意の助けいただければ幸います。
解決
プロパティが記述され、かつディスクリプタは、新しいスタイルのクラスに取り組みます。試してみてください。
class User(object): ...
の代わりに:
class User: ...
の記述子への良いガイドを見つけることができますここを。
所属していません StackOverflow