からプロパティのセッターを呼び出します。しかし、コンストラクタからself.passwordを設定すると無視し、どのように私はPythonコードの次のチャンクを持って__init__
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をプリントアウトする必要があります値を "password1"に設定するだけです。 「password1」の値は、print文によって読み取られます。
これは、クラスとインスタンスの間にパスワードが定義されていることを知っていますが、正しく表現する方法がわかりません。どんな助けもありがとう。
なぜインスタンスが '_password'と' password'ですか? –
_passwordはストレージフィールドです。パスワードはプロパティアクセサーです。 _passwordはプライベートフィールドを意味します。パスワードはパブリックプロトコルです。 –