zoukankan      html  css  js  c++  java
  • Python getattr

    getattr()函数是Python自省的核心函数,具体使用大体如下:

     获取对象引用getattr
    Getattr用于返回一个对象属性,或者方法

    Python代码
    1. class A:   
          def __init__(self):   
              self.a = 'a'  
          def method(self):   
              print "method print"  
        
      a = A()   
      print getattr(a, 'a', 'default') #如果有属性a则打印a,否则打印default   
      print getattr(a, 'b', 'default') #如果有属性b则打印b,否则打印default   
      print getattr(a, 'method', 'default')   
      #如果有方法method,否则打印其地址,否则打印default   
      print getattr(a, 'method', 'default')()   
      #如果有方法method,运行函数并打印None否则打印default 
       
    Python代码 class A: def __init__(self): self.a = 'a' def method(self): print "method print" a = A() print getattr(a, 'a', 'default') #如果有属性a则打印a,否则打印default print getattr(a, 'b', 'default') #如果有属性b则打印b,否则打印default print getattr(a, 'method', 'default') #如果有方法method,否则打印其地址,否则打印default print getattr(a, 'method', 'default')() #如果有方法method,运行函数并打印None否则打印default" 
    class A:  
        def __init__(self):  
            self.a = 'a'  
        def method(self):  
            print "method print"  
      
    a = A()  
    print getattr(a, 'a', 'default') #如果有属性a则打印a,否则打印default  
    print getattr(a, 'b', 'default') #如果有属性b则打印b,否则打印default  
    print getattr(a, 'method', 'default')  
    #如果有方法method,否则打印其地址,否则打印default  
    print getattr(a, 'method', 'default')()  
    #如果有方法method,运行函数并打印None否则打印default 
     



    注:使用getattr可以轻松实现工厂模式。 
    例:一个模块支持html、text、xml等格式的打印,根据传入的formate参数的不同,调用不同的函数实现几种格式的输出

    Python代码
      1. import statsout   
        def output(data, format="text"):                                
             output_function = getattr(statsout, "output_%s" % format)   
            return output_function(data)  
  • 相关阅读:
    我从Linux走来,选择了Windows
    静态路由(三路由)
    设置跨交换机VLAN
    服务器只能被动接受
    理解 atime,ctime,mtime (下)
    理解 atime,ctime,mtime (上)
    visualvm连接服务器jvm进行监控
    mysql 日期函数格式
    关于springmvc跨域
    Javassist初体验
  • 原文地址:https://www.cnblogs.com/honglingjin/p/6757084.html
Copyright © 2011-2022 走看看