12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- class Wallet:
- def __init__(self, currency, balance):
- if not isinstance(currency, str):
- raise TypeError("Неверный тип валюты")
- elif len(currency) != 3:
- raise NameError("Неверная длина названия валюты")
- elif not currency.isupper():
- raise ValueError("Название должно состоять только из заглавных букв")
- self.currency = currency
- self.balance = balance
- def __eq__(self, value):
- if not isinstance(value, Wallet):
- raise TypeError(f"Wallet не поддерживает сравнение с {value}")
- elif self.currency != value.currency:
- raise ValueError("Нельзя сравнить разные валюты")
- else:
- return self.balance == value.balance
-
- def __add__(self, value):
- if not isinstance(value, Wallet):
- raise ValueError("Данная операция запрещена")
- elif self.currency != value.currency:
- raise ValueError("Данная операция запрещена")
- else:
- return Wallet(self.currency, self.balance + value.balance)
- def __sub__(self, value):
- if not isinstance(value, (Wallet)):
- raise ValueError("Данная операция запрещена")
- elif self.currency != value.currency:
- raise ValueError("Данная операция запрещена")
- else:
- return Wallet(self.currency, self.balance - value.balance)
- def main():
- '''
- wallet1 = Wallet('USD', 50)
- wallet2 = Wallet('RUB', 100)
- wallet3 = Wallet('RUB', 150)
- wallet4 = Wallet(12, 150) # исключение TypeError('Неверный тип валюты')
- wallet5 = Wallet('qwerty', 150) # исключение NameError('Неверная длина названия валюты')
- wallet6 = Wallet('abc', 150) # исключение ValueError('Название должно состоять только из заглавных букв')
- print(wallet2 == wallet3) # False
- print(wallet2 == 100) # TypeError('Wallet не поддерживает сравнение с 100')
- print(wallet2 == wallet1) # ValueError('Нельзя сравнить разные валюты')
- wallet7 = wallet2 + wallet3
- print(wallet7.currency, wallet7.balance) # печатает 'RUB 250'
- wallet2 + 45 # ValueError('Данная операция запрещена')
- '''
- '''
- try:
- int('sdfawsdf')
- except ValueError:
- print('!!!!')
- '''
- if __name__ == '__main__':
- main()
|