zoukankan      html  css  js  c++  java
  • 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是实例对象

     

  • 相关阅读:
    学习MongoDB(Troubleshoot Replica Sets) 集群排除故障
    MyBatis 相同事物查询缓存问题
    Spring事物源码
    Spring Session Redis
    Tomcat配置多个域名绑定到不同项目
    Shiro相关文章资料
    一网打尽:Java 程序员必须了解的计算机底层知识!
    Chrome 80 调教篇
    谭浩强《C++程序设计》
    HTTP/HTTPS协议
  • 原文地址:https://www.cnblogs.com/cfpl/p/12037419.html
Copyright © 2011-2022 走看看