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

news2024/9/24 15:25:25

一、学习目标

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

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

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

相关文章

qt cmake添加resource文件

文章目录 方式一:方式二:qrc的使用 两种方式 方式一: 创建一个qrc文件,在qt_add_executable 中直接添加 qt_add_executable(helloworldmain.cppimageresources.qrc )方式二: 使用 qt_add_resources qt_add_resources(helloworld "app_images"PREFIX &…

tomcat nginx 动静分离

实验目的:当访问静态资源的时候,nginx自己处理 当访问动态资源的时候,转给tomcat处理 第一步 关闭防火墙 关闭防护 代理服务器操作: 用yum安装nginx tomcat (centos 3)下载 跟tomcat(centos 4&#xff0…

循环队列:一道使数据结构萌新知道什么是“愁滋味“的题目

这破题目肝了我一天半才搞明白,也正是因为这道题目,我才豁然明白了李煜所说的"剪不断,理还乱...别是一般滋味在心头"到底是什么"滋味".在完全搞明白之前,真的是放有放不下,理也理不清... 但是理解之后你会发现,嘛い---,也就那么个回事嘛O(∩_∩)O 目录 1…

瑞_Redis_短信登录(一)

文章目录 项目介绍1 项目准备1.1 导入SQL1.2 导入后端项目1.2 导入前端项目 🙊 前言:本文章为瑞_系列专栏之《Redis》的实战篇的短信登录章节的项目准备小节。由于博主是从B站黑马程序员的《Redis》学习其相关知识,所以本系列专栏主要是针对该…

Tonka Finance,BTCFi 浪潮的发动机

在 2023 年年初,Ordinals 技术方案为比特币 Layer1 带来了一种全新的资产发行方式,此后一场以比特币生态为主战场的新一轮资金、注意力价值争夺战打响,并且越来越多的加密原教旨主义者、密码极客们加入这场战争中。我们看到,铭文市…

【操作系统概念】 第1章:导论

文章目录 关于本书内容0.前言1.1操作系统的功能1.1.1 用户视角1.1.2 系统视角1.1.3 操作系统的定义 1.2 计算机系统的组成1.2.1 计算机系统的运行1.2.2 存储结构1.2.3 I/O结构 1.3 计算机系统体系结构1.4 操作系统的结构1.5 操作系统的执行1.5.1 双重模式与多重模式的执行1.5.2…

DolphinScheduler——介绍及架构设计

目录 一、DolphinScheduler介绍 1.1 概述 1.2 特性 1.2.1 简单易用 1.2.2 丰富的使用场景 1.2.3 High Reliability 1.2.4 High Scalability 1.3 名词解释 1.3.1 名词解释 1.3.2 模块介绍 二、DolphinScheduler架构原理 2.1 系统架构图 2.2 架构说明 2.2.1 Maste…

【AI视野·今日Sound 声学论文速览 第五十一期】Mon, 4 Mar 2024

AI视野今日CS.Sound 声学论文速览 Mon, 4 Mar 2024 Totally 6 papers 👉上期速览✈更多精彩请移步主页 Daily Sound Papers VoxGenesis: Unsupervised Discovery of Latent Speaker Manifold for Speech Synthesis Authors Weiwei Lin, Chenhang He, Man Wai Mak, …

66-ES6:var,let,const,函数的声明方式,函数参数,剩余函数,延展操作符,严格模式

1.JavaScript语言的执行流程 编译阶段:构建执行函数;执行阶段:代码依次执行 2.代码块:{ } 3.变量声明方式var 有声明提升,允许重复声明,声明函数级作用域 访问:声明后访问都是正常的&…

最新LangChain+GLM4开发AI应用程序系列(三):RAG检索增强生成篇

最新LangChainGLM4开发AI应用程序系列(三):RAG检索增强生成篇 一、前言二、RAG介绍1、文档加载器2、文本分割器3、嵌入模型4、向量数据库 三、RAG开发案例1、创建智谱GLM4大模型对象2、加载文档3、文本分割4、向量化存储5、向量库检索6、生成…

初始网络 --- 网络基础

目录 0、 前言 1、 计算机网络发展背景 1.1. 局域网(LAN) && 广域网(WAN) 2、 认识并理解协议 3、 初始网络协议 3.1. 协议分层 4、 TCP/IP 五层(或四层)模型 4.1. 简单了解TCP/IP层状体系 4.2. TCP/IP协议层状结构和计算机层状结构的关系 5、 OSI七层模型 …

程序员如何选择职业赛道:探索未知,寻找激情

作为程序员,我们时常面临职业选择的难题。在这个充满变革的行业中,如何选择适合自己的职业赛道成为了我们关注的焦点。本文将探讨程序员如何选择职业赛道,帮助你找到适合自己的发展方向。 一、认识自己的兴趣和激情 首先,我们需要…

为什么要用云手机进行国外社媒监控?

随着全球化的不断发展,社交媒体已成为企业推动全球品牌知名度和业务流量的关键渠道。在这个数字时代,云手机作为一种强大的工具,为国外社交媒体监控提供了全新的可能性。在这篇文章中,我们将探讨使用云手机进行国外社媒监控的重要…

RHCSA练习2

一、实验题目 1、文件查找 (1)在当前目录及子目录中,查找小写字母开头的txt文件 [rootroot ~]# cd /etc [rootroot etc]# find . -type f -name [a-z]*.txt (2)在/etc及其子目录中,查找host开头的文件 …

Java解决杨辉三角

Java解决杨辉三角 01 题目 给定一个非负整数 *numRows,*生成「杨辉三角」的前 numRows 行。 在「杨辉三角」中,每个数是它左上方和右上方的数的和。 示例 1: 输入: numRows 5 输出: [[1],[1,1],[1,2,1],[1,3,3,1],[1,4,6,4,1]]示例 2: 输入: numRo…

人工智能-飞桨

文章目录 概要安装零基础教程基础知识小结 概要 集核心框架、基础模型库、端到端开发套件、丰富的工具组件于一体的深度学习平台 官方入口 安装 python安装 python官方下载 PaddlePaddle安装 python -m pip install paddlepaddle2.6.0 -i https://mirror.baidu.com/pypi/s…

【C++】类和对象终篇

个人主页 : zxctscl 文章封面来自:艺术家–贤海林 如有转载请先通知 文章目录 1. 前言2. 友元2.1 友元函数2.2 友元类 3. 内部类4. 匿名对象5. 拷贝对象时的一些编译器优化6. 再次理解类和对象 1. 前言 在上一篇博客中提到了类和对象中的构造函数与stat…

数据库系统概论(超详解!!!) 第二节 数据模型

1.数据模型分为两类(两个不同的层次) (1) 概念模型 ,也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计。 (2) 逻辑模型 ,逻辑模型主要包括…

Mybatis实现分页查询数据(代码实操讲解)

在MyBatis中实现分页查询的常见方式有两种:使用MyBatis内置的分页插件如PageHelper,或者手动编写分页的SQL语句。下面我将为你提供两种方式的示例代码。 使用PageHelper分页插件 首先,确保你的项目中已经添加了PageHelper的依赖。在Maven项…

2023 2024年全国职业院校技能大赛中职组网络建设与运维赛项服务器Linux部分教程解析

欢迎合作 需要资料请私 Rocky 9 包含各种常考服务(包括新题型KVM等)