class Animal:
# 所用的知识 Animal类的封装 -> Dog类,Cat类,Person类的继承->多态
# 把所有的共同属性和方法封装在一个公有类里面让子类继承父类的方法来实现和数据
# 在创建一个小狗实例的时候,给它设置几个属性
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 class Dog(Animal): def work(self):
print("%s看家"%self) def __str__(self):
# self对象本身对字符串的一个描述
return "名字是{},年龄{}岁的小狗在".format(self.name, self.age) class Cat(Animal):
def work(self):
print("%s捉老鼠"%self) def __str__(self):
# self对象本身对字符串的一个描述
return "名字是{},年龄{}岁的小猫在".format(self.name, self.age) class Person(Animal):
def __init__(self, name, pets, age=1):
super(Person,self).__init__(name,age)
self.pets = pets
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:
pet.work() def __str__(self):
# self对象本身对字符串的一个描述
return "名字是{},年龄{}岁的人在".format(self.name, self.age) # d = Dog("小黑",18)
# c = Cat("小红",2)
# p = Person("BruceLong", [d, c], 24 )
# print(p.__dict__) d = Dog("小黑",18)# selr中谁调用就是谁 此处d 会去Animal中找到self和里的的属性和方法而Animal里的self就是Dog类
c = Cat("小红",2)
p = Person("BruceLong", [d, c], 24 )
p.feed_pets()
p.make_pets_work()

Python面向对象 三大特性 综合案例的更多相关文章

  1. Python面向对象 三大特性 综合案例+1(视频里的作业)

    class Dog: # 在创建一个小狗实例的时候,给它设置几个属性 def __init__(self, name, age = 1): self.name = name self.age = ag ...

  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. 20165234 《Java程序设计》第九周学习总结

    第九周学习总结 教材内容学习 第十三章 Java 网络编程 URL 类 URL 类是 java.net 包中的一个重要的类,使用URL创建对象的应用程序称为客户端程序. 一个 URL 对象通常包含最基 ...

  2. 使用多线程提高Rest服务性能

    ⒈使用Runnable异步处理Rest服务 /** *使用Runnable异步处理Rest服务 * @return */ @GetMapping("/order") public ...

  3. MySQL伪master+Binlog+同步【转】

    MySQL 中drop 等高危误操作后恢复方法 实验目的: 本次实验以恢复drop操作为例,使用不同方法进行误操作的数据恢复. 方法: 利用master同步 :伪master+Binlog+同步(本文 ...

  4. python使用pudb调试

    pudb是pdb的升级版本 安装 pip3 install pudb 使用方法 在程序文件的开头导入包 from pudb import set_trace set_trace()#断点位置 运行的时 ...

  5. MVC 当前上下文中不存在名称“Styles” “Scripts”

    它们在程序集System.Web.Optimization下,只要全名引用即可 修改配置 在web项目的Views下的web.config修改如下即可,如果是Areas下,处理方法相同 <sys ...

  6. 【转】gcc命令中参数c和o混合使用的详解

    gcc -c a.c  编译成目标文件a.o  gcc a.c  生成执行文件a.exe  gcc -o a -c a.c    编译成目标文件a  gcc -o a  a.c    生成执行文件a. ...

  7. centOS docker运行Asp.net Core程序

    [root@localhost chenhua]# docker run -it --rm -p : --name aspnetcore_sample microsoft/dotnet-samples ...

  8. 常见的SQL调优(SQL Tuning)Tips

    建立适当的索引(参考<正确建立数据库索引的姿势>)   用UNION替换OR (适用于索引列)   用exist.not exist代替 in.not in   不要以字符格式声明数字(会 ...

  9. 安装fastDFS的依赖包fdfs_client报错解决方法

    输入以下指令后再尝试安装 python3环境下输入: sudo apt-get install python3 python-dev python3-dev build-essential libss ...

  10. ajax请求封装的公共方法

    /** * post 方法 */ function ajaxPost(url, params, callBack) { ajax(url,params,"post",callBac ...