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

一、学习目标

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

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

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

二、相关练习

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

class Toy():

    count = 0

    def __init__(self,name):

        self.name = name

        print('创建了名字为{}的玩具实例'.format(name))

        Toy.count = Toy.count + 1

            

Toy1 = Toy('小汽车')

Toy2 = Toy('手枪')

Toy3 = Toy('积木')



print('这个类一共创建了{}个玩具对象'.format(Toy.count))

 

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

class Animal():

    def __init__(self,name):

        self.name = name

        print('这个{}可以'.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 = type

        self.all = all

class HouseItem():

    def __init__(self,name,area):

        self.name = name

        self.area = area



Item1 = 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. 并学会如何利用实例化的对象对函数的属性进行调用

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

鸿蒙Harmony应用开发—ArkTS声明式开发(通用属性:多态样式)

设置组件不同状态下的样式。 说明: 从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 从API Version 11开始支持另一种写法attributeModifier,可根据开发者需要动态设置属性。 stateStyles stateStyl…

微信报修小程序源码

源码获取方式: 1、搜一搜 万能工具箱合集 然后点击资料库,即可获取资源 一、先看Demo(已更新至4.0.0) 想看界面图片的,辛苦你爬一下楼,点击下方查看资源,进入官方demo 二、功能介绍 1、当前版…

二路归并排序的算法设计和复杂度分析and周记

数据结构实验报告 实验目的: 通过本次实验,了解算法复杂度的分析方法,掌握递归算法时间复杂度的递推计算过程。 实验内容: 二路归并排序的算法设计和复杂度分析 实验过程: 1.算法设计 第一步,首先要将数组进行…

计算机网络-第3章 数据链路层

主要内容:两个信道及对应的协议:点对点信道和广播信道,扩展以太网和高速以太网 本章的分组转发为局域网内的转发,不经过路由,网络层分组转为为网络与网络之间的转发,经过路由。局域网属于网络链路层的范围…

苹果群控功能解析与代码分享!

随着移动互联网的飞速发展,智能设备日益普及,苹果设备因其出色的用户体验和稳定的性能受到了广大用户的喜爱,然而,对于开发者而言,如何有效地管理和控制大量的苹果设备成为了一个亟待解决的问题。 一、苹果群控功能概…

00. Nginx总结-错误汇总

/www/wangmingqu/index.html" is forbidden (13: Permission denied) 错误图片 错误日志 2024/01/09 22:26:27 [error] 1737#1737: *1 "/www/wangmingqu/index.html" is forbidden (13: Permission denied), client: 192.169.1.101, server: www.wangmingqu.c…

回收小程序开发,降低企业成本,提高回收利润

近年来,人们的回收意识逐渐强烈,废品回收行业发展非常迅猛,促进了我国的资源回收再利用,我国回收行业也将迎来新的发展机遇。 随着市场规模的扩大,回收行业也正在逐步进行创新。在互联网的支持下,行业中也…

只会Vue的我,用两天学会了react,这个方法您也可以

公众号:需要以下pdf,关注下方 2023已经过完了,让我们来把今年的面试题统计号,来备战明年的金三银四!所以,不管你是社招还是校招,下面这份前端面试工程师高频面试题,请收好。 背景 由…

基于springboot实现保险信息网站系统项目【项目源码+论文说明】

基于springboot实现保险信息网站系统演示 摘要 随着互联网的不断发展,现在人们获取最新资讯的主要途径来源于网上新闻,当下的网上信息宣传门户网站的发展十分的迅速。而保险产品,作为当下人们非常关注的一款能够给人们带来医疗、生活、养老或…

保护模式笔记九 中断门和IDT(中断描述符表)

段选择子: 先直观认识一下GDT和段选择子在逻辑地址转换为线性地址中的作用,例如: 给出逻辑地址:21h:12345678h,需要将其转换为线性地址 a. 选择子SEL21h0000000000100 0 01b,他代表的意思是&#xff1a…

操作系统--绪论

这里写目录标题 什么是操作系统(OS)硬件工作示例引入操作系统目标计算机的产生图灵机通用图灵机计算机 启动电源键开启后,计算机干了什么二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目录二级目录二级目录 一级目录二级目…

洛谷P8888(吉利题) 实验基地

今天来水一期吉利题。 提醒一下,虽然编号很吉利,但内容可不吉利,做好心理准备!!! 题目背景 小 A 和小 B 用实验基地全新的装备进行了一场世纪蒟蒻之战。 题目描述 众所周知,实验基地的武器…

静态时序分析:SDC约束命令set_disable_timing详解

静态时序分析https://blog.csdn.net/weixin_45791458/category_12567571.html 目录 指定对象列表 指定源、目的引脚 指定恢复 简单使用 写在最后 上一章中,我们学习了如何使用set_case_analysis模式分析命令,它通过指定某个端口或引脚为固定值&…

B3619 10 进制转 x 进制

题目描述 给定一个十进制整数 n 和一个小整数 x。将整数 n 转为 x 进制。对于超过十进制的数码,用 A,B ... 表示。 输入格式 第一行一个整数 n; 第二行一个整数 x。 输出格式 输出仅包含一个整数,表示答案。 输入输出样例 …

三星成功研发出业界首款12层堆叠HBM3E

三星电子有限公司成功研发出业界首款12层堆叠HBM3E DRAM——HBM3E 12H,这是迄今为止容量最大的HBM产品。这款新型HBM3E 12H内存模块提供了高达1,280GB/s的史上最高带宽,并拥有36GB的存储容量,相较于之前的8层堆叠HBM3 8H,在带宽和…

鸿蒙 Stage模型-应用组件-配置、UIAbility

前提:基于官网3.1/4.0文档。参考官网文档 基于Android开发体系来进行比较和思考。(或有偏颇,自行斟酌) 一、概念 可以看到分为运行期、编译器,主要关注UIAbility(类似Activity,UI相关&#xff0…

MySQL面试题纯享版

基础内容 1、MySQL的架构分层 2、一条 SQL 查询语句的执行流程 3、如何查看 MySQL 服务被多少个客户端连接了? 4、 空闲连接会一直占用着吗? 5、MySQL 的连接数有限制吗? 6、 怎么解决长连接占用内存的问题? 7、执行器与存储引擎…

AI大模型让你体验未来科技之美

在未来的世界里,AI大模型扮演着越来越重要的角色,它们不仅可以让我们感受到科技之美,更能够改变我们的生活方式和工作方式。通过AI大模型的运用,我们可以实现无人驾驶汽车、智能家居、智能医疗等各种领域的创新应用。 首先说到无…

Android:BitmapFactory.decodeStream Bitmap的内存优化OutOfMemory异常以后Crash闪退

自己项目中使用如下方法,有的手机上会奔溃报错,原因是BitmapFactory.decodeStream部分没有使用options参数改变内存大小 改成如下形式后正常了;正确解决方案:设置inSampleSize 一)Android BitmapFactory.decodeStream(…

网工内推 | 国企运维,年薪最高30W,RHCE认证优先

01 上海华力微电子有限公司 招聘岗位:系统运维资深/主任工程师 职责描述: 1、负责IT基础设施(包括服务器、存储、中间件等系统基础技术平台)的设计建设和日常运维管理; 2、负责生产、开发和测试环境的技术支持&#x…