python 父类方法中使用不同的子类中的不同类对象,


1 # coding:utf-8 2 3 4 class Animal(object): 5 def __init__(self): 6 self._name = None 7 self._f = None 8 9 def eat(self): 10 print("%s吃%s" % (self._name, self._f().food())) 11 12 13 class Dog(Animal): 14 def __init__(self): 15 Animal.__init__(self) 16 self._f = DogFood 17 self._name = "" 18 19 20 class DogFood(): 21 def food(self): 22 return "狗粮" 23 24 25 class Cat(Animal): 26 def __init__(self): 27 Animal.__init__(self) 28 self._name = "" 29 self._f = CatFood 30 31 32 class CatFood(): 33 def food(self): 34 return "猫粮" 35 36 37 dog = Dog() 38 dog.eat() 39 cat = Cat() 40 cat.eat() View Code

狗吃狗粮
猫吃猫粮

 

1 # coding:utf-8 2 3 4 class CatFood(): 5 def food(self, food_name): 6 self.food_name = food_name 7 8 cf = CatFood 9 10 cf1 = CatFood() 11 cf1.food("") 12 cf2 = CatFood() 13 cf2.food("") 14 15 print(cf1.food_name) 16 print(cf2.food_name) View Code


 

1 # coding:utf-8 2 3 4 class CatFood(): 5 def food(self, food_name): 6 self.food_name = food_name 7 8 cf = CatFood 9 10 cf1 = CatFood() 11 cf1.food("") 12 cf2 = CatFood() 13 cf2.food("") 14 15 print(CatFood) 16 print(cf) 17 print(cf1) View Code

<class '__main__.CatFood'>
<class '__main__.CatFood'>
<__main__.CatFood object at 0x000000000279B320>

 

cf CatFood 是类对象

cf1是实例对象

 

 

相关内容

    暂无相关文章

评论关闭