当前位置: 首页 > news >正文

python的class 类创建、方法调用以及属性赋值

题目:购物车系统

创建一个简单的购物车系统,要求如下:

定义一个 Product 类,表示商品,包含以下属性和方法:

属性:
name:商品名称(字符串)
price:商品价格(浮点数)
方法:
init(self, name, price):构造方法,用于初始化商品的名称和价格。
str(self):返回商品的详细信息,格式为:“商品名称: xxx, 商品价格: xxx元”。

定义一个 ShoppingCart 类,表示购物车,包含以下属性和方法:

属性:
products:保存商品对象的列表。
方法:
add_product(self, product):添加商品到购物车。
remove_product(self, product_name):根据商品名称移除购物车中的商品。
total_price(self):计算购物车中所有商品的总价并返回。
show_cart(self):打印购物车中所有商品的信息。
实现以下功能:

创建 3 个商品对象(如:苹果、香蕉和橙子),价格分别为 3.5 元、2 元和 4 元。
创建一个购物车对象,并将 3 个商品依次加入购物车。
移除一种商品后,展示购物车中的商品。
打印购物车总价。

代码实现:

# 商品类
class Product:def __init__(self, name, price):self.name = nameself.price = pricedef __str__(self):return f"商品名称: {self.name}, 商品价格: {self.price:.2f}元"# 购物车类
class ShoppingCart:def __init__(self):self.products = []# 添加商品def add_product(self, product):self.products.append(product)# 移除商品def remove_product(self, product_name):for product in self.products:if product.name == product_name:self.products.remove(product)# 计算总价def total_price(self):return sum(product.price for product in self.products)# 展示购物车内容def show_cart(self):if not self.products:print("购物车为空!")else:for product in self.products:print(product)# 测试代码
if __name__ == '__main__':# 创建商品apple = Product('苹果', 3.5)banana = Product('香蕉', 2.0)orange = Product('橙子', 4.0)# 创建购物车shopping_cart = ShoppingCart()# 添加商品到购物车shopping_cart.add_product(apple)shopping_cart.add_product(banana)shopping_cart.add_product(orange)# 展示购物车内容print("当前购物车内容:")shopping_cart.show_cart()# 移除商品shopping_cart.remove_product('香蕉')print("\n移除香蕉后,购物车内容:")shopping_cart.show_cart()# 打印总价print(f"\n购物车总价:{shopping_cart.total_price():.2f}元")

http://www.lryc.cn/news/492597.html

相关文章:

  • Angular v19 (二):响应式当红实现signal的详细介绍:它擅长做什么、不能做什么?以及与vue、svelte、react等框架的响应式实现对比
  • IMX 平台UART驱动情景分析:write篇--从 TTY 层到硬件驱动的写操作流程解析
  • 网络安全拟态防御技术
  • 灵活开源低代码平台——Microi吾码(一)
  • frida_hook_libart(简单解释)
  • 计算机网络八股整理(二)
  • 强化学习off-policy进化之路(PPO->DPO->KTO->ODPO->ORPO->simPO)
  • Linux 如何创建逻辑卷并使用
  • java实现将图片插入word文档
  • 初识java(3)
  • coqui-ai TTS 初步使用
  • matlab代码--卷积神经网络的手写数字识别
  • Scala—Map用法详解
  • 极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【六】
  • ES6 、ESNext 规范、编译工具babel
  • DeepSpeed 配置文件(DeepSpeed Configuration Files)详解:中英文解释
  • 前端JavaScript(一)---基本介绍
  • 文本处理之sed
  • uniapp在App端定义全局弹窗,当打开关闭弹窗会触发onShow、onHide生命周期怎么解决?
  • 计算机网络 实验七 NAT配置实验
  • 数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!
  • 【kafka04】消息队列与微服务之Kafka 图形工具
  • 剖析前后端 API 接口参数设计:JSON 数据结构化全攻略
  • vue3 多种方式接受props,定义ref,reactive
  • 逻辑处理器核心指纹修改
  • 如何制作项目网页
  • mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
  • 1、正则表达式
  • Airsim安装问题:This project was made with a different version of the Unreal Engine.
  • java八股-分布式服务的接口幂等性如何设计?