python面向对象小练习
就是几个动物,自动排列生成什么的
- class Animal(object):
- def __init__(self,name,weight):
- self.name = name
- self.weight = weight
- def eat(self):
- self.weight +=1
- def 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 +=1
- def 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 +=1
- def 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 +=1
- def 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 = zoo
- return zoo
- animal = []
- 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 = name
- self.weight = weight
- def eat(self):
- self.weight +=1
- def 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 +=1
- def 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 +=1
- def 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 +=1
- def 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 container
- def 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()
python面向对象小练习的更多相关文章
- python面向对象小tips
(一).python鸭子类型 python作为动态语言继承和多态与静态语言(像java)有很大的不同:比如说在java中的某个方法,如果传入的参数是Animal类型,那么传入的对象必须是Animal类 ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- 12岁的少年教你用Python做小游戏
首页 资讯 文章 频道 资源 小组 相亲 登录 注册 首页 最新文章 经典回顾 开发 设计 IT技术 职场 业界 极客 创业 访谈 在国外 - 导航条 - 首页 最新文章 经典回顾 开发 ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- python 面向对象进阶之内置方法
一 isinstance(obj,cls)和issubclass(sub,super) 1.1,isinstance(obj,cls)检查是否obj是否是类 cls 的对象 class Foo(obj ...
- python面向对象编程进阶
python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...
- Python学习笔记【第十一篇】:Python面向对象高级
isinstance(obj,cls)和issubclass(sub,super) class Person(object): def __init__(self, name, age, sex, n ...
- python面向对象入门(1):从代码复用开始
本文从代码复用的角度一步一步演示如何从python普通代码进化到面向对象,并通过代码去解释一些面向对象的理论.所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介 ...
随机推荐
- 通讯协议序列化解读(一) Protobuf详解教程
前言:说到JSON可能大家很熟悉,是目前应用最广泛的一种序列化格式,它使用起来简单方便,而且拥有超高的可读性.但是在越来越多的应用场景里,JSON冗长的缺点导致它并不是一种最优的选择. 一.常用序列化 ...
- Luxurious Houses
The capital of Berland has n multifloor buildings. The architect who built up the capital was very c ...
- Docker常见仓库Ubuntu
Ubuntu 基本信息 Ubuntu 是流行的 Linux 发行版,其自带软件版本往往较新一些. 该仓库提供了 Ubuntu从12.04 ~ 14.10 各个版本的镜像. 使用方法 默认会启动一个最小 ...
- IntelliJ IDEA下Git的配置与使用(命令行下)
1. 安装Git并配置好Git 安装与配置参见Git与码云(Git@OSC)入门-如何在实验室和宿舍同步你的代码(1)中的2.在本机安装Git与3.1 配置git. 2. 创建远程仓库 在gitee. ...
- ListView常见的优化方式简述
ListView的优化 对于ListView来说,应该算是布局中几种最常用的组件之一了,使用也十分方便,下面个大家介绍一下两种常见的优化方式. 1.条目复用优化 其实listview的工作原理就是,l ...
- springMVC源码分析--ModelFactory
ModelFactory是用来维护Model的,具体包含两个功能 (1)初始化Model (2)处理器执行后将Model中相应的参数更新到SessionAttributes中 1.初始化Model其实 ...
- linux下数据同步、回写机制分析
一.前言在linux2.6.32之前,linux下数据同步是基于pdflush线程机制来实现的,在linux2.6.32以上的版本,内核彻底删掉了pdflush机制,改为了基于per-bdi线程来实现 ...
- 在一维坐标轴上有n个区间段,求重合区间最长的两个区间段。
//重叠区间数 #define N 2 typedef struct arrange { int x; int y; } Arrange; //先按左边界排序,若相等再按右边界排序(升序) int c ...
- 用scheme最基本的元素定义排序函数
用到的元素有9个: define,if,null?,cons car,cdr,lambda,let,named let, 其实let 和 named let可以去掉.但那样会带来性能和可读性下降的问题 ...
- 不规则递归转换为while,留底
我发现当参数并不太多时,从性能的角度来看,没必要用一个class来保存参数(虽然看起来更加生动形象),直接用最简单的元组就可以了. from hanoi import * # example tree ...