私は__init__からプロパティのセッターを呼び出すにはどうすればよいです

StackOverflow https://stackoverflow.com/questions/1840628

質問

私は、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: ...

の記述子への良いガイドを見つけることができますここを。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top