Пример создания класса, объекты которого можно складывать и умножать на Python

### Идея такова:
###    создается объект класса Num2nums
###    его свойству value устанавливается числовое значение
###    методы summa и multi складывают и умножают цифры числа
###    при этом используют скрытые методы _sum и _mult
###    методы __add__ и __mul__ позволяют участвовать объектам в операциях сложения и умножения
 
class Num2nums():
    def _sum (a):
        b = 0
        while a > 0:
            b = b + a % 10
            a = a // 10
        return b
    def _mult (a):
        b = 1
        while a > 0:
            b = b * (a % 10)
            a = a // 10
        return b
    def __init__ (self, value = 0):
        self.value = value
    def summa (self): # сумма цифр значения свойства obj.value     
        return Num2nums._sum (self.value)        
    def multi (self): # произведение цифр значения свойства obj.value
        return Num2nums._mult (self.value)        
    def __add__ (self, other): # операция сложения двух объектов
        a = Num2nums._sum(self.value)
        b = Num2nums._sum(other.value)
        return a + b # сумма их цифр
    def __mul__(self, other): # операция умножения двух объектов
        a = Num2nums._mult(self.value)
        b = Num2nums._mult(other.value)
        return a * b # произведение их цифр
 
 
x = Num2nums (457)
print("Первое число:", x.value)
print("Сумма цифр:", x.summa())
print("Произведение цифр:", x.multi(),"\n")
 
y = Num2nums (321)
print("Второе число:", y.value)
print("Сумма цифр:", y.summa())
print("Произведение цифр:", y.multi(),"\n")
 
print("Сумма цифр обоих чисел:", x + y)
print("Произведение цифр обоих чисел:", x * y)

Результат выполнения скрипта:

Первое число: 457
Сумма цифр: 16
Произведение цифр: 140 

Второе число: 321
Сумма цифр: 6
Произведение цифр: 6 

Сумма цифр обоих чисел: 22
Произведение цифр обоих чисел: 840

  Изучение tkinter в Python: Создание графического интерфейса
Оцените статью
( Пока оценок нет )
Поделиться с друзьями
Python для начинающих
Подписаться
Уведомить о
guest
0 Комментарий
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x