method_practic.py 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. # Практика по property
  2. from string import digits
  3. class User:
  4. def __init__(self, login, password) -> None:
  5. self.login = login
  6. self.password = password
  7. self.__secret = 'abracadabra'
  8. @property
  9. def secret(self):
  10. s = input("Введите ваш пароль: ")
  11. if s == self.password:
  12. return self.__secret
  13. else:
  14. raise ValueError("Доступ закрыт")
  15. @property
  16. def password(self):
  17. print('getter called')
  18. return self.__password
  19. @staticmethod
  20. def is_include_number(password):
  21. for digit in digits:
  22. if digit in password:
  23. return True
  24. return False
  25. @password.setter
  26. def password(self, value):
  27. print('setter called')
  28. if not isinstance(value, str):
  29. raise TypeError("Пароль должен быть строкой")
  30. if len(value) < 4:
  31. raise ValueError("Длина пароля должна быть не менее 4-ех символов")
  32. if len(value) > 12:
  33. raise ValueError("Длина пароля должна быть не более 12-и символов")
  34. if not User.is_include_number(value):
  35. raise ValueError("Пароль должен содержать хотя бы одну цифру")
  36. self.__password = value
  37. def main():
  38. user1 = User('Ivan', '123df')
  39. if __name__ == '__main__':
  40. main()