12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- # Практика по property
- from string import digits
- class User:
- def __init__(self, login, password) -> None:
- self.login = login
- self.password = password
- self.__secret = 'abracadabra'
-
- @property
- def secret(self):
- s = input("Введите ваш пароль: ")
- if s == self.password:
- return self.__secret
- else:
- raise ValueError("Доступ закрыт")
- @property
- def password(self):
- print('getter called')
- return self.__password
- @staticmethod
- def is_include_number(password):
- for digit in digits:
- if digit in password:
- return True
- return False
- @password.setter
- def password(self, value):
- print('setter called')
- if not isinstance(value, str):
- raise TypeError("Пароль должен быть строкой")
- if len(value) < 4:
- raise ValueError("Длина пароля должна быть не менее 4-ех символов")
- if len(value) > 12:
- raise ValueError("Длина пароля должна быть не более 12-и символов")
- if not User.is_include_number(value):
- raise ValueError("Пароль должен содержать хотя бы одну цифру")
- self.__password = value
- def main():
- user1 = User('Ivan', '123df')
- if __name__ == '__main__':
- main()
|