中等
技术面试0 次浏览

在阿里巴巴的电商平台上,经常会有促销活动,需要计算商品在不同折扣规则下的最终价格。假设有以下三种折扣规则:1. 满减:满 200 减 50;2. 折扣率:打 8 折;3. 买二送一。请设计一个 Python 类,能够根据不同的折扣规则计算商品的最终价格。

阿里巴巴算法工程师
Python面向对象编程电商促销价格计算

答题要点

推荐使用面向对象的分层分析法答题框架。关键要点如下:1. 设计一个商品类,包含商品的原价和数量等属性。2. 为每种折扣规则设计一个方法,在方法中实现具体的价格计算逻辑。3. 在类中提供一个统一的方法,根据传入的折扣规则调用相应的计算方法。4. 考虑不同规则的优先级和组合情况。示例话术:我会先创建一个商品类,在类中定义商品的基本属性。然后为每种折扣规则编写单独的方法,比如满减方法中判断是否满足满减条件,满足则减去相应金额;折扣率方法直接乘以折扣系数;买二送一方法根据数量计算实际需要付款的商品数量。最后,创建一个统一的计算最终价格的方法,根据传入的规则调用相应的计算方法。以下是简单的代码思路: python class Product: def __init__(self, price, quantity): self.price = price self.quantity = quantity def full_discount(self): total = self.price * self.quantity if total >= 200: return total - 50 return total # 其他规则方法类似 def calculate_final_price(self, rule): if rule == '满减': return self.full_discount() # 调用其他规则方法