就是几个动物,自动排列生成什么的

class Animal(object):def __init__(self,name,weight):self.name = nameself.weight = weightdef eat(self):self.weight +=1def speak(self):print ("i am a animal")def walk(self):print ("i am walking")  class Dog(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat():self.weight +=1def speak(self):print ("i am a dog")def walk(self):print ("i am walking")
class Duck(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat(self):self.weight +=1def speak(self):print ("i am a duck")def walk(self):print ("i am walking")
class Cat(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat(self):self.weight +=1def speak(self):print ("i am a dog")def walk():print ("i am walking")  #animal = Dog("Dog",24)#animal.speak()def reAnimals(zoo):string = "animal"for x in range(0,21):if x%3 ==0:animal = Dog(string+str(x),x+2)if x%3 ==1:animal = Duck(string+str(x),x)       if x%3 ==2:animal = Cat(string+str(x),x)zoo.append(animal)return zoo#zoo = [item for item in animal if item.weight <= 10 and item.weight >= 0]def filterAnimal(animal):zoo = []for x in range(0,len(animal)):if animal[x].weight<=10 and animal[x].weight>=0:zoo.append(animal[x])#animal.clear()#animal = zooreturn zooanimal = []
dongwu = []dongwu = filterAnimal(reAnimals(dongwu))for x in dongwu:x.speak()print (x.weight)#print (animal[x].weight)

改版代码:

class Animal(object):def __init__(self,name,weight):self.name = nameself.weight = weightdef eat(self):self.weight +=1def fly(self):print ("i am a animal and i can fly")def jump(self):print ("i can jump ") class Tiger(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat():self.weight +=1def fly(self):print ("i am a Tiger and i cant fly")def jump(self):print ("i can jump ")
class Bird(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat(self):self.weight +=1def fly(self):print ("i am a bird and i can fly")def jump(self):print ("i can jump ")
class Snake(Animal):def __init__(self,name,weight):Animal.__init__(self,name,weight)def eat(self):self.weight +=1def fly(self):print ("i am a snake and i cant fly")def jump(self):print ("i cant jump ") container = []
dongwu = []class Zoo(object):def filterAnimal(animal):container = []for x in range(0,len(animal)):if animal[x].weight<=10 and animal[x].weight>=0:container.append(animal[x])return containerdef reAnimals(container):string = "animal"   for x in range(0,21):if x%3 ==0:animal = Tiger(string+str(x),x+2)if x%3 ==1:animal = Bird(string+str(x),x)      if x%3 ==2:animal = Snake(string+str(x),x)container.append(animal)return container  def relax():dongwu = Zoo.filterAnimal(Zoo.reAnimals(container))for x in dongwu:x.fly()x.jump()Zoo.relax()

转载于:https://www.cnblogs.com/wangyaning/p/7854004.html

python面向对象小练习相关推荐

  1. python面向对象小项目_python之面向对象

    1 #类 :一类具体相同特征的事务的统称 2 #关键字 class 类名 #类 通常首字母大写 3 #class Tiger:#如果没有继承可以写冒号,不写括号 4 #pass 5 #6 ##实例: ...

  2. python面向对象编程从零开始_Python面向对象编程从零开始(4)—— 小姐姐请客下篇

    前言 前文传送门: Python面向对象编程从零开始(2)-- 与对象相互了解:Python面向对象编程从零开始(2)-- 与对象相互了解 Python面向对象编程从零开始(3)-- 小姐姐请客上篇: ...

  3. python面向对象编程从零开始_Python面向对象编程从零开始(3)—— 小姐姐请客上篇

    前言 好了,接着昨天的故事继续. 上文说到我和小姐姐相互自我介绍了 今天我们继续讲我与小姐姐的故事: self的作用 class Car: def drive(self): print('我正在开车' ...

  4. 第八课.Python面向对象(二)

    类的继承和多态 继承和多态与函数有共同的目的,都是为了减少代码的冗余,提高复用的效率: 根据"Python面向对象(一)"的笔记,我现在定义一个Cinema类: #父类 class ...

  5. Python 面向对象 基础

    编程范式概述: 面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实 ...

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

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

  7. python面向对象生动讲解_Python面向对象语法精讲

    本专题的内容结构: 第一部分主要是:面向对象基础 第二部分主要是:面向对象进阶 第一部分的结构: unit1:面向对象编程模式: (1),面向对象编程思想 (2),面向对象的三个特征 (3),Pyth ...

  8. python面向对象编程的三大特性_Python面向对象总结及类与正则表达式详解

    Python3 面向对象 -------------------------------------------------------------------------------- 一丶面向对象 ...

  9. 【Python进阶】实战Python面向对象基本编程

    欢迎来到专栏<Python进阶>.在这个专栏中,我们会讲述Python的各种进阶操作,包括Python对文件.数据的处理,Python各种好用的库如NumPy.Scipy.Matplotl ...

最新文章

  1. java pkcs1转pkcs8_.NET Core RSA密钥的xml、pkcs1、pkcs8格式转换和JavaScript、Java等语言进行对接...
  2. 囊括三大视觉顶会,行人重识别新基准方法AGW!已被TPAMI录用
  3. 使用tcpwrapper实现访问控制功能
  4. delphi 回调函数
  5. Hibernate延时加载
  6. 结构体中vector自动为0_面试题:你是如何选择顺序存储数据结构的?
  7. 面试官:高并发下重启服务,接口调用老是超时,你有什么解决办法?
  8. httpurlconnection 封装_不要再封装各种Util工具类了,看看这个框架
  9. ubuntu20.10下mysql8数据库的安装(亲测)
  10. FPGA学习笔记---二进制码、独热码、格雷码分析对比
  11. Problem J: 蛇形填阵
  12. nginx ssl加密_如何通过让我们加密SSL证书来保护Nginx
  13. gif图片解析与生成(GIF+文字动效)
  14. BMC指定4路NCSI网口中的一路
  15. 一台电脑绿色安装多个版本google Chorme方案
  16. 解决Windows系统删除文件:文件正在使用,无法删除问题
  17. 金山词霸不断的弹出窗口(金山词霸防欺诈提示),犹如病毒软件
  18. Yandex域名邮箱逻辑
  19. 基于SRS的视频直播服务器搭建
  20. turtle画哆啦A梦(不止一个哦 多个有趣的画)

热门文章

  1. 树莓派 安装中文字体、中文输入法fcitx和googlepinyin输入法
  2. Spring Boot集成Dubbo多模块项目创建与配置
  3. Mysql 数据库重置ID排序
  4. caxa电子图板2018中文版
  5. 【SSM框架系列】Spring IoC(控制反转) DI(依赖注入)注解开发
  6. php读取excel类——PHP-ExcelReader
  7. js array 对象
  8. MySQL数据库操作(DDL)
  9. java基础(5)----面向对象
  10. import com.sun.image.codec.jpeg.JPEGCodec不通过 找不到包