zoukankan      html  css  js  c++  java
  • 类的反射

    类反射:
       通过字符串映射或修改程序运行时的状态,属性,方法
     
       有以下4个方法:
         1. hasattr(obj, str)
            判断obj对象是否存在str方法
     
         2. getattr(obj, str)
            获取obj对象的内存地址
     
         3.  setattr(obj, str_name, func_name)
            将方法func_name装配成obj的str_name方法
     
         4. delattr(obj, str)
            将对象obj中的str删除掉。
     
     例1: 
     class Dog(object):
      def __init__(self, name):
        self.name = name
     
      def eat(self, food):
          print("%s is eating %s...." % (self.name, food))
     
     d = Dog("Kitty")
     sel = input(">>:").strip()
     
     if hasattr(d, sel):
      func = getattr(d, sel)
      func("fruit")  
      
     例2:   
     class Dog(object):
      def __init__(self, name):
        self.name = name
     
      def eat(self, food):
        print("%s is eating %s...." % (self.name, food))
     
     d = Dog("Kitty")
     sel = input(">>:").strip()
     
     def bulk(self):
      print("%s is talking...."% self.name)
     
     if hasattr(d, sel):
      func = getattr(d, sel)
      func("fruit")
     else:
      setattr(d, sel, bulk)
      func = getattr(d, sel)
      func(d)
     
     输出:
     >>:gg
     Kitty is talking.... 
  • 相关阅读:
    Codeforces Round #363 (Div. 2)
    Codeforces Round #312 (Div. 2)
    Codeforces Round #354 (Div. 2)
    Codeforces Round #353 (Div. 2) A
    Codeforces Round #347 (Div. 2) B
    Codeforces Round #326 (Div. 2)
    Spring中数据库技术--获得DataSource
    查询练习
    查询语句
    Oracle数据库的使用
  • 原文地址:https://www.cnblogs.com/brace2011/p/9291529.html
Copyright © 2011-2022 走看看