كيف يمكنني استدعاء STERTER الخاصية من __init__
-
12-09-2019 - |
سؤال
لدي الجزء التالي من رمز بيثون:
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 من كلمة المرور، مهما كان إعداد Nelf.Password من المنشئ يتجاهل الخاصية المحددة ويعيد فقط القيمة إلى "كلمة المرور 1". ثم يتم قراءة قيمة "كلمة المرور 1" بواسطة بيان الطباعة.
أعلم أن هذا شيء وصولا إلى كلمة المرور قيد المعرفة على الفئة مقابل المثال، لكنني لست متأكدا من كيفية تمثيله بشكل صحيح حتى يعمل. سيكون موضع تقدير أي مساعدة.
المحلول
خاصية هو واصف، ويماصفات تعمل فقط على فئات النمط الجديد. يحاول:
class User(object): ...
بدلا من:
class User: ...
يمكن العثور على دليل جيد للوصفات هنا.
لا تنتمي إلى StackOverflow