屬性setter我有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,但是設置self.password從構造忽略定義屬性,並將值設置爲「password1」。然後由print語句讀取「password1」的值。
我知道這是密碼被定義在類與實例上的東西,但我不知道如何正確表示它,所以它的工作原理。任何幫助,將不勝感激。
爲什麼你有'_password'和'password'的實例? – 2009-12-03 15:34:56
_password是存儲字段。密碼是屬性訪問器。 _密碼意味着一個私人領域。密碼是公共協議。 – 2009-12-03 15:36:36