Python 面向对象编程——类的使用

一、学习目标

1.掌握类的定义和实例化对象。

2.熟练掌握类的构造函数__init__使用。

3.掌握类的继承机制和使用。 

二、相关练习

1、定义一个玩具类Toy(),创建名字为“小汽车”、“手枪”和“积木”的玩具实例,计算出用这个类创建了多少个玩具对象。

class Toy():count = 0def __init__(self,name):self.name = nameprint('创建了名字为{}的玩具实例'.format(name))Toy.count = Toy.count + 1Toy1 = Toy('小汽车')Toy2 = Toy('手枪')Toy3 = Toy('积木')print('这个类一共创建了{}个玩具对象'.format(Toy.count))

 

2、创建Animal类、Dog类、XiaoTianQuan类和Cat类。其类和类继承关系如下图所示,分别实现这4类的实例化对象,并运行对象方法。

class Animal():def __init__(self,name):self.name = nameprint('这个{}可以'.format(name))def eat(self):print('吃东西')def drink(self):print('喝水')def run(self):print('跑步')def sleep(self):print('睡觉')class Dog(Animal):def bark(self):print('吠')class Cat(Animal):def catch(self):print('抓老鼠')class XiaoTianQuan(Dog):def fly(self):print('飞')Ani1 = Animal('动物')Ani1.eat()Ani1.drink()Ani1.run()Ani1.sleep()print('\n')Ani2 = Dog('狗')Ani2.bark()print('\n')Ani3 = Cat('猫')Ani3.catch()print('\n')Ani4 = XiaoTianQuan('哮天犬')Ani4.fly()

 

3、编写程序以实现摆放家具的如下需求:

  1. 房子(House)有户型、总面积和家具名称列表(新房子没有任何的家具)
  2. 家具(HouseItem)有名字和占地面积,其中:席梦思(bed)占地4平方、衣柜(chest)占地2平方、餐桌(table)占地1.5平方。
  3. 将以上三件家具添加到房子中。
  4. 打印房子时,要求输出:户型、总面积、剩余面积、家具名称列表。
class House():def __init__(self,type,all):self.type = typeself.all = allclass HouseItem():def __init__(self,name,area):self.name = nameself.area = areaItem1 = HouseItem('bed',4)Item2 = HouseItem('chest',2)Item3 = HouseItem('table',1.5)type = input('请输入房子的户型:')a = int(input('请输入房子的总面积:'))house = House('apartment',a)if Item1.area+Item2.area+Item3.area>house.all:print('家具把房子都占满了,请合理添加家具!!!')else:print('家具安排得很合理!')print('房子的户型为:',house.type)print('房子的总面积为:',house.all)print('房子的剩余面积为:',house.all-(Item1.area+Item2.area+Item3.area))print('所添加的家具有:{0:},{1:},{2:}'.format(Item1.name,Item2.name,Item3.name))

三、反思总结

  1. 在这次练习中,熟练掌握类的定义和实例化对象。
  2. 并且熟练掌握类的构造函数__init__的使用方法。
  3. 在实验中,掌握类的继承机制和使用。
  4. 并学会如何利用实例化的对象对函数的属性进行调用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/721758.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深圳牵头打造鸿蒙原生应用软件生态 | 百能云芯

深圳市工业和信息化局、深圳市政务服务和数据管理局于3月3日联合印发了《深圳市支持开源鸿蒙原生应用发展2024年行动计划》。这一计划旨在通过政策引导、市场推动、社会协同的方式,将深圳打造成一个鸿蒙原生应用软件生态的中心,推动鸿蒙系统在当地的发展…

PyQT6的从零开始在Pycharm中配置与使用

PyQT6的从零开始在Pycharm中配置与使用 1.安装PyQt6 PyQt6-tools2.在Pycharm中配置扩展工具2.1配置QTdesigner2.2配置Pyuic 3.启动3.1、启动designer3.2、启动Pyuic 1.安装PyQt6 PyQt6-tools pip install PyQt6 PyQt6-tools安装成功后,查看安装版本,版本…

基于springboot+vue的医疗报销系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

面试笔记系列四之SpringBoot+SpringCloud+计算机网络基础知识点整理及常见面试题

目录 Spring Boot 什么是 Spring Boot? Spring Boot 有哪些优点? SpringBootApplication注解 Spring Boot 的启动流程 Spring Boot属性加载顺序 springboot自动配置原理是什么?(*) 如何理解springboot中的start…

低代码平台开发实践:基于React的高效构建与创新【文末送书-29】

文章目录 背景低代码平台简介基于React的优势低代码平台的实际应用 低代码平台开发实践:基于React【文末送书-29】 背景 随着技术的不断进步和业务需求的日益复杂,低代码平台成为现代软件开发领域中备受关注的工具之一。在这个快节奏的时代,…

解决手机连接校园网同一设备老是需要重复认证的问题(+解决原理)

相信大家平时在使用校园网的时候总会遇到同一设备隔三岔五就要重复认证绑定的问题,这里直接附上解决方案。 打开手机的wifi-->连接校园网然后进入设置-->在隐私选项选择“使用设备MAC” 如下图,问题解决了!如果想知道原理的可以继续往…

如何处理微服务之间的通信和数据一致性?

✨✨祝屏幕前的兄弟姐妹们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 一、微服务通信 1、同步通信:HTTP 1.1.同步通信示例代码&#xf…

1、Ajax、get、post、ajax,随机颜色

一、Ajax初始 1、什么是Ajax? 异步的JavaScript和xml 2、xml是什么? 一种标记语言,传输和存储数据----------现在用JSON传输数据 3、Ajax的作用 局部加载 可以使网页异步更新 4、Ajax的原理或者步骤(6步) 创建Ajax对象 if (window.X…

2024年租用阿里云服务器多少钱?阿里云服务器租用价格表(最新版)

2024年租用阿里云服务器一年多少钱?不同时期阿里云服务器的租用价格不同,随着2024年阿里云上云采购季活动的开启和阿里云最新一轮的云产品降价调整,阿里云服务器租用价格也做了一些调整,配置最低的1核1G云服务器收费标准为22.8/月…

NAT模式 LVS负载均衡部署

一 架构图 二 文字表述过程 1 当客户端 发起请求报文是: 源ip:客户端的ip地址(cip) 目的地址:vip(代理服务器的外网地址) 2.当数据包到达我们的 代理服务器 源ip不变,需要修改目的ip及端口号 源ip:客户端的ip地址(c…

智慧城市中的数字孪生:构建城市管理的未来框架

目录 一、引言 二、数字孪生技术概述 三、数字孪生技术在智慧城市中的应用 1、实时监测与预警 2、模拟与优化 3、智能化决策 4、协同与共享 四、数字孪生技术构建城市管理的未来框架的价值 1、提高管理效率 2、优化资源配置 3、提升公共服务水平 4、增强应对突发事…

【Android开发】02-小费计算APP(Tip Time)

github地址(项目中的A02_TipTime文件夹): https://github.com/tao355667/Android_Development 一、功能介绍 输入消费金额和服务满意度后,可计算出相应的小费(可选是否四舍五入)支持中英文系统可根据系统主题的明暗切换界面 二、…

SpringBoot源码解读与原理分析(四)SPI机制

文章目录 2.4 SPI机制(Service Provider Interface)2.4.1 JDK原生SPI1.定义接口实现类2.声明SPI文件3.测试 2.4.2 SpringFramework 3.2 的SPI1.声明SPI文件2.测试3.Spring SPI机制的实现原理 2.4 SPI机制(Service Provider Interface&#xf…

【c++设计模式14】结构型6:享元模式(Flyweight Pattern)

【c设计模式14】结构型6:享元模式(Flyweight Pattern) 一、定义二、适用场景三、过程四、享元模式类图五、C示例代码六、使用注意事项 类型序号设计模式描述结构型1适配器模式(Adapter Pattern)它用于在不修改已有类的…

配置ssh连接Esxi、ESXi 收缩虚拟硬盘文件(.vmdk) 大小(回收ESXi thin磁盘空间)

文章目录 一、配置ssh连接Esxi1. Esxi开启ssh服务2. 如何设置ESXI主机启动时自动开启shell(ssh)服务 二、ESXi6.0中将虚拟机从厚置备转换为精简置备三、ESXi 收缩虚拟硬盘文件(.vmdk) 大小1. 三种虚拟磁盘类型2. 如何给ESXi 上的VM缩小硬盘(VMDK)回收ESX…

【C++精简版回顾】13.(重载1)运算符重载+,前置后置++

1.友元函数方式为类重载运算符 &#xff08;友元函数声明可以放在类任何地方&#xff09; 1.类 class MM { public:MM() {}MM(int grade,string name):grade(grade),name(name){}friend MM operator(MM object1, MM object2);void print() {cout << this->grade <…

单调队列的使用

单调队列其实就是一个队列&#xff0c;只是使用了一点巧妙的方法使得队列中的元素全都是单调递增&#xff08;或单调递减&#xff09;的 单挑队列主要解决以下问题&#xff1a; 滑动窗口在滑动时&#xff0c;r代表右侧数字进入串口&#xff0c;l代表左侧数字出窗口 这个过程…

Spring事件发布监听器ApplicationListener原理- 观察者模式

据说监听器模式也是mq实现的原理, 不过mq我还没来得及深入学习, 先用spring来理解一下吧 Spring事件发布监听器ApplicationListener原理- 观察者模式 什么是观察者模式一个Demo深入认识一下观察者模式Spring中的事件发布监听ps 什么是观察者模式 大家都听过一个故事叫做烽火戏…

数据结构与算法-希尔排序

引言 在计算机科学中&#xff0c;数据结构和算法是构建高效软件系统的基石。而排序算法作为算法领域的重要组成部分&#xff0c;一直在各种应用场景中发挥着关键作用。今天我们将聚焦于一种基于插入排序的改进版本——希尔排序&#xff08;Shell Sort&#xff09;&#xff0c;深…

证明高维度神经网络模型是低纬度神经网络模型的加和

神经网络中矩阵乘法的分解与应用 启发标题&#xff1a;神经网络中矩阵乘法的分解与应用摘要&#xff1a;引言&#xff1a;方法&#xff1a;实验&#xff1a;结论&#xff1a;参考文献&#xff1a;附录1附录2实验数据 启发 理论上 更具矩阵乘法 A[p,mn]B[mn,q]C[p,q] Acat(A[:,…