123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176 |
- # Property. getter, setter.
- '''
- class BandAccount:
- def __init__(self, name, balance) -> None:
- self.name = name
- self.__balance = balance
-
- def get_balance(self):
- return self.__balance
-
- def set_balance(self, value):
- if not isinstance(value, (int, float)):
- raise ValueError("Баланс должен быть числом")
- self.__balance = value
- '''
- '''
- class BankAccount:
- def __init__(self, name, balance) -> None:
- self.name = name
- self.__balance = balance
-
- def get_balance(self):
- return self.__balance
-
- def set_balance(self, value):
- if not isinstance(value, (int, float)):
- raise ValueError("Баланс должен быть числом")
- self.__balance = value
- def delete_balance(self):
- del self.__balance
- balance = property(fget=get_balance, fset=set_balance, fdel=delete_balance)
- '''
- class BankAccount:
- def __init__(self, name, balance) -> None:
- self.name = name
- self.__balance = balance
-
- def get_balance(self):
- return self.__balance
-
- def set_balance(self, value):
- if not isinstance(value, (int, float)):
- raise ValueError("Баланс должен быть числом")
- self.__balance = value
- def delete_balance(self):
- del self.__balance
- balance = property(fget=get_balance, fset=set_balance, fdel=delete_balance)
-
- class BankAccount:
- def __init__(self, account_number, balance) -> None:
- self._account_number = account_number
- self._balance = balance
- def get_account_number(self):
- return self._account_number
-
- def get_balance(self):
- return self._balance
-
- def set_balance(self, value):
- if not isinstance(value, (int, float)):
- raise ValueError("ErrorValue!!!")
- self._balance = value
-
- class Employee:
- def __init__(self, name, salary) -> None:
- self.__name = name
- self.__salary = salary
- def __get_name(self):
- return self.__name
- def __get_salary(self):
- return self.__salary
-
- def __set_salary(self, value):
- if not isinstance(value, (int, float)) or (value < 0):
- print(f"ErrorValue:{value}")
- return
- self.__salary = value
- title = property(fget=__get_name)
- reward = property(fget=__get_salary, fset=__set_salary)
- class UserMail:
- def __init__(self, login, email: str):
- self.login = login
- self.__email = email
- def get_email(self):
- return self.__email
-
- def set_email(self, email):
- if not isinstance(email, str):
- print(f"ErrorMail:{email}")
- return
- if email.count('@') == 1 and (email.rfind('@') < email.rfind('.')):
- self.__email = email
- else:
- print(f"ErrorMail:{email}")
- return
- email = property(fget=get_email, fset=set_email)
- def main():
- '''
- acc = BandAccount('Ivan', 200)
- acc.balance = 400
- print(acc.balance)
- '''
- '''
- employee = Employee("John Doe", 50000)
- assert employee.title == "John Doe"
- assert employee._Employee__name == "John Doe"
- assert isinstance(employee, Employee)
- assert isinstance(type(employee).title, property), 'Вы не создали property title'
- assert isinstance(type(employee).reward, property), 'Вы не создали property reward'
- assert employee.reward == 50000
- employee.reward = -100 # ErrorValue:-100
- employee.reward = 1.5
- assert employee.reward == 1.5
- employee.reward = 70000
- assert employee.reward == 70000
- employee.reward = 'hello' # Печатает ErrorValue:hello
- employee.reward = '777' # Печатает ErrorValue:777
- employee.reward = [1, 2] # Печатает ErrorValue:[1, 2]
- assert employee.reward == 70000
- employee._Employee__set_salary(55000)
- assert employee._Employee__get_salary() == 55000
- '''
- jim = UserMail("aka47", 'hello@com.org')
- assert jim.login == "aka47"
- assert jim._UserMail__email == "hello@com.org"
- assert isinstance(jim, UserMail)
- assert isinstance(type(jim).email, property), 'Вы не создали property email'
- jim.email = [1, 2, 3] # печатает ErrorMail:[1, 2, 3]
- jim.email = 'hello@@re.ee' # печатает ErrorMail:hello@@re.ee
- jim.email = 'hello@re.w3'
- assert jim.email == 'hello@re.w3'
- k = UserMail('belosnezhka', 'prince@wait.you')
- assert k.email == 'prince@wait.you'
- assert k.login == 'belosnezhka'
- assert isinstance(k, UserMail)
- k.email = {1, 2, 3} # печатает ErrorMail:{1, 2, 3}
- k.email = 'prince@still@.wait' # печатает ErrorMail:prince@still@.wait
- k.email = 'prince@stillwait' # печатает ErrorMail:prince@stillwait
- k.email = 'prince@still.wait'
- assert k.get_email() == 'prince@still.wait'
- k.email = 'pri.nce@stillwait' # печатает ErrorMail:pri.nce@stillwait
- assert k.email == 'prince@still.wait'
- if __name__ == '__main__':
- main()
|