Ошибка TypeError:'int' object is not callable
Пишу вот такой код на создание геометрических фигур. Хочу установить значние аrea при помощи декоратора @property. В итоге вышеописанная ошибка. Заранее благодарен за помощь
class GeometricFigure:
def __init__(self, name, area, angles, perimeter):
self.name = name
self.__area = area
self.angles = angles
self.perimeter = perimeter
print(f"Инициализирован экземпляр класса - '{self.name}' ")
@property
def p_area(self):
print(f"Площадь фигуры '{self.name}' = {self.__area}")
return self.__area
@p_area.setter
def p_area(self, value):
print('Площадь фигуры установлена')
if not isinstance(value, (int, float)):
raise ValueError('Значение не является числом')
self.__area += 1
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Вы, видимо, неправильно используете свойство. Правильно делать так:
g = GeometricFigure('name', 20, 1, 2)
g.p_area = 1
print(g.p_area)
Вывод:
Инициализирован экземпляр класса - 'name'
Площадь фигуры установлена
Площадь фигуры 'name' = 21
21
Ошибка будет, если вы попытаетесь использовать свойство как метод:
g.p_area(1)
TypeError: 'int' object is not callable
Свойство g.p_area возвращает целое число, а целое число нельзя использовать как функцию.