class Dog:
# 在创建一个小狗实例的时候,给它设置几个属性
def __init__(self, name, age = 1):
self.name = name
self.age = age def eat(self):
# print("名字是%s,年龄%d岁的小狗在吃饭"%(self.name,self.age))
print("%s吃饭" % self)
return self def play(self):
print("%s玩" % self)
return self def sleep(self):
print("%s睡觉" % self)
return self def watch(self):
print("%s看家"%self) def __str__(self):
# 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)
return self def play(self):
print("%s玩" % self)
return self def sleep(self):
print("%s睡觉" % self)
return self def catch(self):
print("%s捉老鼠"%self) def __str__(self):
# 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)
return self def play(self):
print("%s玩" % self)
return self def sleep(self):
print("%s睡觉" % self)
return self def feed_pets(self):
for pet in self.pets:
pet.eat()
pet.sleep()
pet.play() def make_pets_work(self):
for pet in self.pets:
if isinstance(pet, Dog):
pet.watch()
elif isinstance(pet, Cat):
pet.catch()
def __str__(self):
# self对象本身对字符串的一个描述
return "名字是{},年龄{}岁的人在".format(self.name, self.age)
d = Dog("小黑",18)
c = Cat("小红",2)
p = Person("BruceLong", [d, c], 24 )
p.feed_pets()
p.make_pets_work()

Python面向对象 三大特性 综合案例+1(视频里的作业)的更多相关文章

  1. Python面向对象 三大特性 综合案例

    class Animal: # 所用的知识 Animal类的封装 -> Dog类,Cat类,Person类的继承->多态 # 把所有的共同属性和方法封装在一个公有类里面让子类继承父类的方法 ...

  2. python 面向对象(三大特性)

    python 面向对象(初级) (思维导图 ↑↑↑↑↑) 概述: 面向过程:根据业务逻辑从上到下垒代码. 函数式:将某功能代码封装至函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类 ...

  3. python 面向对象三大特性(封装 多态 继承)

    今天我们来学习一种新的编程方式:面向对象编程(Object Oriented Programming,OOP,面向对象程序设计)注:Java和C#来说只支持面向对象编程,而python比较灵活即支持面 ...

  4. python面向对象三大特性

    面向对象的三大特性: 封装.继承和多态 一.封装 封装,顾名思义就是将内容封装到某个地方,以后可以直接调用被封装到某处的内容. - 将内容封装到某处 - 从某处调用被封装的内容 第一步,将内容封装到某 ...

  5. python面向对象-三大特性

    python面向对象编程三大特性 小结:前面我们说完了类和对象的关系,相信对类和对象的理解更加透彻..让我们一起去研究面向对象的三大特性吧.... 继承 1.什么继承? 在程序中继承就是事物之间的所属 ...

  6. python -- 面向对象三大特性

    1,继承 1,初识继承 什么是继承? ——继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 子类会“遗传”父类的属性,从而 ...

  7. Python()- 面向对象三大特性----继承

    继承: 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类(基类或超类),新建的类是所继承的类的(派生类或子类) 人类和狗 有相同的属性, 提取了一个__init__方法,在这 ...

  8. python面向对象三大特性之一封装

    一.什么是封装 在程序设计中,封装(Encapsulation)是对具体对象的一种抽象,即将某些部分隐藏起来,在程序外部看不到,其 含义是其他程序无法调用. 要了解封装,离不开“私有化”,就是将类或者 ...

  9. python面向对象三大特性之继承

    继承是创建新类的方法,以下是几个概念 父类,基类,超类: 被继承的类 子类,派生类:继承而产出的类 单继承:继承一个父类 多继承:继承多个父类 继承: 什么是什么的关系 父类中没有的属性,在字类中出现 ...

随机推荐

  1. 将mnist数据集保存成numpy格式

    import numpy as np from urllib import request import gzip import pickle filename = [ ["training ...

  2. ODS、DW和DM

    参考资料: 数据仓库ODS.DW和DM概念区分:https://www.jianshu.com/p/72e395d8cb33

  3. Dubbo--基于Zookeeper服务与Spring集成

    Dubbo Zookeeper Spring  1.部署dubbo服务管理中心 2.搭建dubbo服务环境 2.1 pom.xml 依赖 2.2 log4j.properties 日志打印 3.api ...

  4. 【转】python之random模块分析(一)

    [转]python之random模块分析(一) random是python产生伪随机数的模块,随机种子默认为系统时钟.下面分析模块中的方法: 1.random.randint(start,stop): ...

  5. 快速开发工具:Servoy

    快速开发工具:Servoy https://servoy.com/

  6. Kafka监控KafkaOffsetMonitor【转】

    1.概述 前面给大家介绍了Kafka的背景以及一些应用场景,并附带上演示了Kafka的简单示例.然后,在开发的过程当中,我们会发现一些问题,那就是消息的监控情况.虽然,在启动Kafka的相关服务后,我 ...

  7. H5混合开发app常用代码

    1.Android与H5互调可以让我们的实现混合开发,至于混合开发就是在一个App中内嵌一个轻量级的浏览器(高性能webkit内核浏览器),一部分原生的功能改为Html 5来开发.然后这个浏览器又封装 ...

  8. webpack打包生成多个vendor的配置方法

    用webpack打包项目的时候,一般喜欢把一些公用的库打包的vendor.js里面,比如像react,react-router,redux等. 随着引入的库越来越多,vendor文件也变得越来越大,于 ...

  9. day2 --> pyc 文件

    执行python 代码时,如果导入了其他的.py文件,那么,执行过程中会自动生成一个与其同名的.pyc文件,该文件就是python解释器便宜之后产生的字节码. PS:代码经过便宜可以产生字节码;字节码 ...

  10. node-删除对象中指定属性失效问题-JSON.parse实例化

    需求描述: 删除 _body 对象里的 code 字段.用 detele 删除后输出的_body 里仍有 code 字段. body是从后台得到的json串,所以要先 parse 转换成对象,本以为 ...