fork download
  1. class Example():
  2.  
  3. def __init__(self, a1):
  4. self.a1 = a1
  5.  
  6. def addition(self, a2): #Оба метода содержат одинаковую переменную 'a2'
  7. self.a2 = a2
  8. self.addition = self.a1 + self.a2
  9. print(self.addition)
  10.  
  11. def substraction(self, a2): #Здесь тоже 'a2'
  12. self.a2 = a2
  13. self.substraction = self.a1 - self.a2
  14. print(self.substraction)
  15.  
  16.  
  17. example = Example(5)
  18.  
  19. example.addition(10)
  20. example.substraction(10)
  21.  
  22. # 1) С одной стороны, для меня 'a2' - это одно и то же значение (объяснено ниже)
  23. # 2) С другой стороны, я хочу иметь возможность проверять каждый метод индивидуально, с новым значением
  24.  
  25. # Чтобы было понятнее, допустим, Класс - это человек
  26. # А "a2" - это его возраст
  27. # Но я не хочу присваивать классу возраст, при его создании, я хочу иметь возможность работать с ним отдельно
  28. # Кроме того, я хочу иметь возможность посмотреть, что будет, если бы у данного человека был другой возраст
  29. # Объяснение сумбурное, потому что у меня нет конкретного примера, просто данная концепция пришла в голову
  30.  
  31. ############ Вопрос:
  32. # Как превратить данный код из обезьяньего в лаконичный?
  33. # Чтобы не писать каждый раз
  34. # (self, a2)
  35. # self.a2 = a2
  36. # А то получается "Copy and paste programming"
  37. ############ Дополнительнйы вопрос:
  38. # Разрешается ли вообще объявлять переменную с одним и тем же названием несколько раз?
  39. # Или это совсем плохо?
  40. ############
Success #stdin #stdout 0.02s 9300KB
stdin
Standard input is empty
stdout
15
-5