Прежде всего, я новичок. Спасибо за ваше терпение.Как я могу объединить (или сделать операции) между атрибутами разных классов (без указания экземпляров еще)?
Я проектирую часть программного обеспечения для расчета изоляционных материалов и количества в разных домах.
У меня есть class House()
, который содержит атрибуты, такие как roof_area и wall_area.
У меня есть class Insulator()
, который имеет такие атрибуты, как толщина и площадь (площадь упакованного материала накрывает)
Теперь я хочу знать, сколько пакетов изолятора я должен купить, чтобы покрыть всю площадь крыши ,
Таким образом, операция будет:
House.roof_area/Insulator.area = insulator_packages_needed_for_roof
Дело в том, что я не могу сделать эту операцию:
AttributeError: type object 'House' has no attribute 'roof_area'.
Конечно, я мог бы сделать это область применения экземпляром, но дон Не хочу указывать экземпляр еще, поскольку эта операция должна быть выполнена для любого экземпляра класса, который будет создан в будущем. Должен ли я использовать наследование? Я чувствую, что, учитывая, что Изолятор и Хаус совершенно разные вещи, их нельзя смешивать по наследству, но я всего лишь новичок.
Можете ли вы показать код для класса House? Ошибка указывает, что roof_area не является статичным и вместо этого устанавливается внутри метода или __init__ –
. Вы можете просто сделать это с помощью метода внутри класса дома, что-то вроде 'def area (x): return self.roof_area/x.area ' –