python核心-面向对象-三大特性-综合案例

news2024/11/17 7:52:58

# 定义三个类, 小狗, 小猫, 人
# 小狗: 姓名, 年龄(默认1岁);        吃饭, 玩, 睡觉, 看家(格式: 名字是xx, 年龄xx岁的小狗在xx)
# 小猫: 姓名, 年龄(默认1岁);        吃饭, 玩, 睡觉, 捉老鼠(格式: 名字是xx, 年龄xx岁的小猫在xx)
# 人:   姓名, 年龄(默认1岁), 宠物;  吃饭, 玩, 睡觉(格式: 名字是xx, 年龄xx岁的小猫在xx)
#                           养宠物(让所有的宠物吃饭, 玩, 睡觉),
#                           让宠物工作(让所有的宠物根据自己的职责开始工作)

# class Dog():
#     # 在创建小狗实例的时候,给他设置几个属性
#     def __init__(self, name, age=1):
#         self.name = name
#         self.age = age
#
#     def eat(self):
#         print("%s在吃饭" % self)
#
#     def play(self):
#         print("%s在玩" % self)
#
#     def sleep(self):
#         print("%s在睡觉" % self)
#
#     def work(self):
#         print("%s在看家" % self)
#
#     def __str__(self):
#         return "名字是{},年龄是{}岁的小狗在".format(self.name, self.age)
#
# class Cat():
#     # 在创建小狗实例的时候,给他设置几个属性
#     def __init__(self, name, age=1):
#         self.name = name
#         self.age = age
#
#     def eat(self):
#         print("%s在吃饭" % self)
#
#     def play(self):
#         print("%s在玩" % self)
#
#     def sleep(self):
#         print("%s在睡觉" % self)
#
#     def work(self):
#         print("%s在捉老鼠" % self)
#
#     def __str__(self):
#         return "名字是{},年龄是{}岁的小猫在".format(self.name, self.age)
#
# class Person():
#     # 在创建小狗实例的时候,给他设置几个属性
#     def __init__(self, name, pets, age=1):
#         self.name = name
#         self.age = age
#         self.pets = pets
#     def eat(self):
#         print("%s在吃饭" % self)
#
#     def play(self):
#         print("%s在玩" % self)
#
#     def sleep(self):
#         print("%s在睡觉" % self)
#
#     def yangPets(self):
#         for pet in self.pets:
#             pet.eat()
#             pet.play()
#             pet.sleep()
#
#     def make_pets_work(self):
#         for pet in self.pets:
#             pet.work()
#
#     def __str__(self):
#         return "名字是{},年龄是{}岁的人在".format(self.name, self.age)
#
# d = Dog("小黑", 11)
# c = Cat("小红果", 2)
# # print(d.__dict__)
#
# p = Person("sz",[d,c],18)
# p.yangPets()
# p.make_pets_work()

#----------------------------优化代码------------------------------------

class Animal:

    def __init__(self, name, age=1):
        self.name = name
        self.age = age

    def eat(self):
        print("%s在吃饭" % self)

    def play(self):
        print("%s在玩" % self)

    def sleep(self):
        print("%s在睡觉" % self)


class Person(Animal):
    # 在创建小狗实例的时候,给他设置几个属性
    def __init__(self, name, pets, age = 1):
        super(Person, self).__init__(name, age)
        self.pets = pets

    def yangPets(self):
        for pet in self.pets:
            pet.eat()
            pet.play()
            pet.sleep()

    def make_pets_work(self):
        for pet in self.pets:
            pet.work()

    def __str__(self):
        return "名字是{},年龄是{}岁的人在".format(self.name, self.age)

# p = Person("sz", [1,2], 18)
# print(p.__dict__)


class Cat(Animal):
    # 在创建小狗实例的时候,给他设置几个属性

    def work(self):
        print("%s在捉老鼠" % self)

    def __str__(self):
        return "名字是{},年龄是{}岁的小猫在".format(self.name, self.age)

class Dog(Animal):
    # 在创建小狗实例的时候,给他设置几个属性

    def work(self):
        print("%s在看家" % self)

    def __str__(self):
        return "名字是{},年龄是{}岁的小狗在".format(self.name, self.age)

d = Dog("小黑", 11)
c = Cat("小红果", 2)
# print(d.__dict__)

p = Person("sz",[d,c],18)
p.yangPets()
p.make_pets_work()

 

# 作业
# 	# 定义三个类:学生,组长,教师
# 	# 学生:
# 		姓名, 年龄, 学号
# 		吃饭, 睡觉, 学习
# 	# 组长:
# 		姓名, 年龄, 学号, 职务
# 		吃饭, 睡觉, 学习, 管理
# 	# 教师
# 		姓名, 年龄, 职务
# 		吃饭, 睡觉, 教学, 管理


# class student:
#     def __init__(self, name ,age ,id):
#         self.name = name
#         self.age = age
#         self.id = id
#
#     def chifan(self):
#         print("%吃饭" % self)
#
#     def shuijiao(self):
#         print("%睡觉" % self)
#
#     def xuexi(self):
#         print("%睡觉" % self)
#
# s = student("dd", 18 , 135456)
# print(s.__dict__)
#
# class groupLeader:
#     def __init__(self, name ,age ,id, duties):
#         self.name = name
#         self.age = age
#         self.id = id
#         self.duties = duties
#
#     def chifan(self):
#         print("%吃饭" % self)
#
#     def shuijiao(self):
#         print("%睡觉" % self)
#
#     def jiaoxue(self):
#         print("%教书" % self)
#
#     def zhiwu(self):
#         print("%管理" % self)
#
#
# g = groupLeader("dd", 19 , 15616 ,"组长")
# print(g.__dict__)
#
#
# class teacher:
#     def __init__(self, name ,age , duties):
#         self.name = name
#         self.age = age
#         self.duties = duties
#
#     def chifan(self):
#         print("%吃饭" % self)
#
#     def shuijiao(self):
#         print("%睡觉" % self)
#
#     def jiaoxue(self):
#         print("%睡觉" % self)
#
#     def zhiwu(self):
#         print("%管理" % self)
#
# t = teacher("dd", 22,"语文老师")
# print(t.__dict__)



# --------------------------优化-----------------------

class xuexiao:
    def __init__(self, name, age):
        self.name = name
        self.age = age


    def chifan(self):
        print("%s吃饭" % self)

    def shuijiao(self):
        print("%s睡觉" % self)



class student(xuexiao):
    def __init__(self, name, age, id):
        super().__init__(name, age)
        self.id = id

    def xuexi(self):
        print("%s学习" % self)

    def __str__(self):
        return "姓名是{},年龄是{},学号是{}的职务是学生在".format(self.name,self.age,self.id)
s = student("dd", 18, 15613)
# print(s.__dict__)
s.chifan()

class groupLeader(xuexiao):

    def __init__(self, name, age, id, duties):
        super().__init__(name, age)
        self.id = id
        self.duties = duties

    def xuexi(self):
        print("%s学习" % self)

    def guanli(self):
        print("%s管理" % self)

    def __str__(self):
        return "姓名是{},年龄是{},学号是{}职责是{}的组长在".format(self.name,self.age,self.id, self.duties)

g = groupLeader("dd", 18, 3333,"收作业")
# print(g.__dict__)
g.chifan()


class teacher(xuexiao):

    def __init__(self, name, age, duties):
        super().__init__(name, age)
        self.duties = duties

    def jiaoxue(self):
        print("%s教学" % self)

    def guanli(self):
        print("%s管理" % self)

    def __str__(self):
        return "姓名是{},年龄是{},职责是{}的老师在".format(self.name,self.age, self.duties)

t = teacher("dd", 18, "收作业")
t.chifan()



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

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

相关文章

【替换】批量替换命令文件名称或者文件内容

你是否困扰过,每次文件F2进行修改,十几个没关系,百来个写代码麻烦,那就使用shell命令吧 执行语句 先养成习惯查询验证,因为是批量替换,为了防止全局替换嘎嘎叫 替换文件名 # 【习惯】先使用顾虑查询&…

暴力猴插件简明开发教程->百度首页默认设置为我的关注

文章目录 暴力猴插件开发简明教程->百度首页默认设置为我的关注缘起缘灭思路实现尾声 暴力猴插件开发简明教程->百度首页默认设置为我的关注 缘起 在我的百度首页有很多自己设置的导航链接(接近100个),里面放了我常用的网站, 如下图 但是最近一段时间, 我发现百度做了一…

算法38:反转链表

一、需求 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 示例 2: 输入:head [1,2] 输出:[2,1] 示例3&#xff…

电器水族设备加热器UL1018检测报告

UL1018---电气水族设备 适用范围:本标准要求适用于300V或以下,用于室内商业或家用的水族器材上的设备。如加热器、水泵、过滤器、反射器 电线支架等相似用途的产品。 本标准不包括: 不是和水族器材一起用的照明器或台子;水族容器 一、UL1018标准测试内…

R中无法安装GitHub包 | 花费大量时间的小小经验

写在前面 最近在安装R包时,遇到无法安装包的情况,然后自己就各种捣鼓。最后,R环境也会让自己弄崩,如果你遇到此情况R语言无法调用stats.dll的问题解决方案,可以参考我前面的方法捣鼓一下。 那么,这个推文也是记录自己…

【Golang】Golang进阶系列教程--为什么 Go 不支持 []T 转换为 []interface

文章目录 前言官方解释内存布局程序运行中的内存布局通用方法 前言 在 Go 中,如果 interface{} 作为函数参数的话,是可以传任意参数的,然后通过类型断言来转换。 举个例子: package mainimport "fmt"func foo(v inter…

2023年自然语言处理与信息检索国际会议(ECNLPIR 2023) | EI Compendex, Scopus双检索

会议简介 Brief Introduction 2023年自然语言处理与信息检索国际会议(ECNLPIR 2023) 会议时间:2023年9月22日-24日 召开地点:中国杭州 大会官网:ECNLPIR 2023-2023 Eurasian Conference on Natural Language Processing and Information Retr…

【GO】go语言入门实战 —— 命令行在线词典

文章目录 程序介绍抓包代码生成生成request body解析respond body完整代码 字节青训营基础班学习记录。 程序介绍 在运行程序的时候以命令行的形式输入要查询的单词,然后程序返回单词的音标、释义等信息。 示例如下: 抓包 我们选择与网站https://fany…

【Linux命令200例】用ln创建链接文件

🏆作者简介,黑夜开发者,全栈领域新星创作者✌,2023年6月csdn上海赛道top4。 🏆本文已收录于专栏:Linux命令大全。 🏆本专栏我们会通过具体的系统的命令讲解加上鲜活的实操案例对各个命令进行深入…

【Linux下6818开发板(ARM)】在液晶屏上显示RGB颜色和BMP图片

(꒪ꇴ꒪ ),hello我是祐言博客主页:C语言基础,Linux基础,软件配置领域博主🌍快上🚘,一起学习!送给读者的一句鸡汤🤔:集中起来的意志可以击穿顽石!作者水平很有限,如果发现错误&#x…

Leangoo领歌敏捷看板工具,什么是敏捷看板?

敏捷看板 看板是一个团队共享的工作区,在看板上团队可以进行实时的工作任务协同,团队的工作以卡片的形式体现。通过泳道和任务列表组织管理。需求、任务、问题、缺陷 都作为卡片放在看板上,通过看板实现可视化和透明化的 管理,通…

mybatisx插件使用

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.java1234.mapper.SysUserMap…

听说 Spring Bean 的创建还有一条捷径?

文章目录 1. resolveBeforeInstantiation1.1 applyBeanPostProcessorsBeforeInstantiation1.2 applyBeanPostProcessorsAfterInitialization1.3 案例 2. 源码实践2.1 切面 Bean2.2 普通 Bean 在 Spring Bean 的创建方法中&#xff0c;有如下一段代码&#xff1a; AbstractAutow…

uniapp 微信小程序:v-model双向绑定问题(自定义 props 名无效)

uniapp 微信小程序&#xff1a;v-model双向绑定问题&#xff08;自定义 props 名无效&#xff09; 前言问题双向绑定示例使用 v-model使用 v-bind v-on使用 sync 修饰符 参考资料 前言 VUE中父子组件传递数据的基本套路&#xff1a; 父传子 props子传父 this.$emit(事件名, …

Linux 终端生成二维码

1、安装qrencode [rootnode1 script]# yum -y install qrencode2、输出正常的 [rootnode1 ~]# echo https://www.github.com|qrencode -o - -t utf83、输出彩色的 [rootnode1 ~]# qrencode -t utf8 -s 1 https://www.github.com|lolcatPS&#xff1a;没有lolcat命令 #由于…

动静态网页、Django创建表关系、Django框架的请求生命周期流程图

一、request对象的几个方法 在视图函数中写方法的时候&#xff0c;都会有一个形参requestdef index(request):passrequest.method # GET POST request.GET.get() # 它获取最后一个元素值 request.GET.getlist() # 获取到所有的request.POST.get() # 它获取最后一个元素值 req…

2023年Q2京东清洁电器行业分析报告(京东数据平台)

如今&#xff0c;消费者尤其是年轻一代对智能产品替代繁琐家务劳动的需求日趋强烈&#xff0c;这激发了对清洁电器产品需求的增长。随着各类清洁电器的热度持续增长&#xff0c;我国清洁电器的零售额也在逐年攀升。 接下来结合鲸参谋平台数据&#xff0c;我们一起来分析当前清洁…

算法----二叉搜索树中第K小的元素

题目 二叉搜索树中第K小的元素 给定一个二叉搜索树的根节点 root &#xff0c;和一个整数 k &#xff0c;请你设计一个算法查找其中第 k 个最小元素&#xff08;从 1 开始计数&#xff09;。 示例 1&#xff1a; 输入&#xff1a;root [3,1,4,null,2], k 1 输出&#xff…

练习四答案

练习2答案 构建数据库 数据库 数据表 answer开头表为对应题号答案形成的数据表 表结构 表数据 答案&#xff1a; 1、编写脚本&#xff0c;创建mis数据库&#xff0c;创建dept&#xff0c;创建employee表 SQL语句 CREATE TABLE dept ( …

HCIP——OSPF的重发布以及路由策略

OSPF重发布以及路由策略 一、重发布1、作用2、条件3、规则4、名词解释点向 5、单点重发布6、双点重发布 二、路由策略1、控制层流量和数据层流量2、抓流量ACL列表前缀列表 (ip-prefix) 3、做策略过滤策略(filter-policy)路由策略(route-policy) 一、重发布 在同一个网络拓扑结…