zoukankan      html  css  js  c++  java
  • 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()
    
    
    		





  • 相关阅读:
    C#单纯的字母数字ASCII码转换
    解析类型后加问号和双问号
    【转】composer autoload 自动加载性能优化指南
    【转】Laravel 三种中间件作用讲解
    【转】Laravel belongsTo 详解
    【转】docker-compose详解
    【转】laravel之Artisan命令操作Artisan Console
    【转】Shell中>/dev/null 2>&1 详解
    【转】docker-entrypoint.sh 文件的用处
    【转】解决Debian下sudo命令unable to initialize PAM问题
  • 原文地址:https://www.cnblogs.com/wuyida/p/6301353.html
Copyright © 2011-2022 走看看