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普通代码进化到面向对象,并通过代码去解释一些面向对象的理论.所以,本文前面的内容都是非面向对象的语法实现方式,只有在最结尾才给出了面向对象的简单语法介 ...
随机推荐
- Go 语言数据类型
在 Go 编程语言中,数据类型用于声明函数和变量. 数据类型的出现是为了把数据分成所需内存大小不同的数据,编程的时候需要用大数据的时候才需要申请大内存,就可以充分利用内存. Go 语言按类别有以下几种 ...
- Python3 XML解析
什么是XML? XML 指可扩展标记语言(eXtensible Markup Language),标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言. 你可以通过本站学习XML教程 ...
- DB2 911错误的解释
SQL0911N 因为死锁或超时,所以当前事务已回滚.原因码为 "<原因码>". 说明: 当前工作单元参与了未解决的对象争用,因此必须回滚. 原因码如下所示: 2 ...
- myeclipse中修改maven的默认仓库位置
1.本地需要安装Maven.这里假设安装在D:\Program Files\apache-maven-2.2.1 2.修改本地maven库的路径:在D:\Program Files\ap ...
- 安卓高级4 第三方库SlidingMenu的使用
源码位于github上(本人fork地址):点击进入地址 效果图: 使用方法:下载源码后 解压其中的文件夹library 到任意地方 修改library中gragle 其方法参考另一个博客(建议先修改 ...
- 多线程(五) Fork/Join框架介绍及实例讲解
什么是Fork/Join框架 Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架. 我们再通过For ...
- 剑指Offer——顺丰笔试题+知识点总结
剑指Offer--顺丰笔试题+知识点总结 情景回顾 时间:2016.10.16 19:00-20:40 地点:山东省网络环境智能计算技术重点实验室 事件:顺丰笔试 知识点总结 快排 霍尔排序(快排) ...
- iOS学习笔记--Quartz2D
Quartz 2D是一个二维绘图引擎,同时支持iOS和Mac系统. Quartz 2D能完成的工作: 1. 绘制图形 : 线条\三角形\矩形\圆\弧等 2. 绘制文字 3. 绘制\生成图片(图像) 4 ...
- Android艺术开发探索——第二章:IPC机制(下)
Android艺术开发探索--第二章:IPC机制(下) 我们继续来讲IPC机制,在本篇中你将会学习到 ContentProvider Socket Binder连接池 一.使用ContentProvi ...
- ROS(indigo) turtlebot2 + android一些有趣应用
ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtle ...