`
f002489
  • 浏览: 271493 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Python的getattr()

阅读更多

http://hi.baidu.com/secbug/blog/item/30c6e4c99ec7781e7f3e6f3c.html

 

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

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

Python代码
  1. class A:   
  2.     def __init__(self):   
  3.         self.a = 'a'  
  4.     def method(self):   
  5.         print "method print"  
  6.   
  7. a = A()   
  8. print getattr(a, 'a', 'default') #如果有属性a则打印a,否则打印default   
  9. print getattr(a, 'b', 'default') #如果有属性b则打印b,否则打印default   
  10. print getattr(a, 'method', 'default')   
  11. #如果有方法method,否则打印其地址,否则打印default   
  12. print getattr(a, 'method', 'default')()   
  13. #如果有方法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   
  2. def output(data, format="text"):                                
  3.      output_function = getattr(statsout, "output_%s" % format)   
  4.     return output_function(data)  
分享到:
评论

相关推荐

    Python getattr()函数使用方法代码实例

    ### Python `getattr()` 函数详解及应用场景 #### 一、`getattr()` 函数概述 `getattr()` 是Python内置的一个函数,其主要功能是通过给定的对象和属性名(字符串形式)来获取对象的属性或方法。这对于实现动态加载...

    Golang库可在运行时作用于结构字段。 与Python getattr(),setattr(),hasattr()API相似。-Golang开发

    与Python getattr(),setattr(),hasattr()API相似。 go-attr Golang库可在运行时作用于结构字段。 与Python getattr(),setattr(),hasattr()API相似。 该软件包提供了基于Golang“ reflect”库的用户...

    在Python中通过getattr获取对象引用的方法

    在Python编程中,`getattr()`函数是一个非常实用的内置函数,它允许我们在运行时动态地获取对象的属性。这个函数的主要用途是当你需要根据某些条件来访问对象的属性,而这些属性的名称在编写代码时可能还不确定。...

    python中getattr函数使用方法 getattr实现工厂模式

    在Python编程语言中,`getattr()`函数是一个非常实用的内置函数,它允许我们动态地从对象中获取属性。函数的基本语法是`getattr(object, name[, default])`,它接受三个参数: 1. `object`:这是一个对象,我们需要...

    Python中getattr函数和hasattr函数作用详解

    ### Python中getattr函数和hasattr函数作用详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是非常实用且强大的内置函数,它们在处理对象属性时提供了灵活的操作方式。本文将深入探讨这两个函数的用法...

    详解Python中 __get__和__getattr__和__getattribute__的区别

    ### 详解 Python 中 `__get__` 和 `__getattr__` 与 `__getattribute__` 的区别 在 Python 编程语言中,对象的属性访问机制是非常灵活且强大的。当我们试图通过点号(`.`)操作符去访问一个对象的属性时,Python 会...

    python的getattr()函数

    python的getattr()函数的说明与代码示例

    浅谈python中的getattr函数 hasattr函数

    ### Python中的`getattr`与`hasattr`函数详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是两个非常有用的内置函数,它们主要用于对象属性的操作,尤其在动态地访问对象属性时发挥着重要作用。本文将...

    全面了解Python的getattr(),setattr(),delattr(),hasattr()

    ### Python的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对象的属性管理是非常重要的一个方面。为了更好地理解和使用对象的属性,Python提供了四个内置函数:`getattr()`、`setattr()`、`...

    详解Python的hasattr() getattr() setattr() 函数使用方法

    在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...

    对比Python中__getattr__和 __getattribute__获取属性的用法

    在Python中,`__getattr__` 和 `__getattribute__` 都是用来处理对象属性访问的特殊方法,但它们在何时以及如何被调用上有显著的区别。了解这些区别对于编写更灵活、更具动态特性的代码至关重要。 首先,`__getattr...

    浅析Python中的getattr(),setattr(),delattr(),hasattr()

    ### Python中的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对对象属性的操作是非常常见的需求。本文将深入探讨Python内置函数`getattr()`, `setattr()`, `delattr()`, 和`hasattr()`的功能...

    python调用webservice接口的实现

    Python调用WebService接口是一种常见的数据交互方式,尤其在分布式系统和跨平台通信中。WebService接口通常基于SOAP(Simple Object Access Protocol)协议,提供了一种标准化的方式来交换结构化信息。在Python中,...

    浅谈使用Python内置函数getattr实现分发模式

    在Python编程中,`getattr()`是一个内置函数,用于获取对象的属性。本文主要探讨了如何利用`getattr()`实现分发模式,这是一种设计模式,用于根据特定条件选择并执行不同的方法。分发模式在处理多态性或动态行为时...

    Python类中方法getitem和getattr详解

    总的来说,`getitem`和`getattr`是Python中两个非常重要的方法,它们让我们有机会自定义对象属性的访问逻辑,从而实现更加灵活和定制化的类行为。在设计类时,可以根据实际需求考虑是否需要重写这些特殊方法,以达到...

    python中的内置函数getattr()介绍及示例

    在python的官方文档中:getattr()的解释如下: getattr(object, name[, default]) Return the value of the named attribute of object. name must be a string. If the string is the name of one of the object's...

Global site tag (gtag.js) - Google Analytics