Статические методы внутри класса в ООП в Python
Если вы хотите использовать статические методы
внутри класса, то к ним следует обращаться
не через self, а через имя класса.
Для примера добавим в наш класс Math
метод get_double_sum, который будет
находить удвоенную сумму чисел. Используем
внутри нового метода уже существующий метод
get_sum:
class Math:
# Найдем удвоенную сумму:
@staticmethod
def get_double_sum(a, b):
return 2 * Math.get_sum(a, b) # используем другой метод
@staticmethod
def get_sum(a, b):
return a + b
@staticmethod
def get_product(a, b):
return a * b
Воспользуемся новым методом:
print(Math.get_double_sum(1, 2))
Переделайте методы следующего класса на статические:
class ArraySumHelper:
def get_sum1(self, arr):
return self.__get_sum(arr, 1)
def get_sum2(self, arr):
return self.__get_sum(arr, 2)
def get_sum3(self, arr):
return self.__get_sum(arr, 3)
def get_sum4(self, arr):
return self.__get_sum(arr, 4)
def __get_sum(self, arr, power):
sum = 0
for elem in arr:
sum += elem ** power
return sum