http://hi.baidu.com/secbug/blog/item/30c6e4c99ec7781e7f3e6f3c.html
getattr()函数是Python自省的核心函数,具体使用大体如下:
10.1.5 获取对象引用getattr
Getattr用于返回一个对象属性,或者方法
-
class A:
-
def __init__(self):
-
self.a = 'a'
-
def method(self):
-
print "method print"
-
-
a = A()
-
print getattr(a, 'a', 'default')
-
print getattr(a, 'b', 'default')
-
print getattr(a, 'method', 'default')
-
-
print getattr(a, 'method', '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参数的不同,调用不同的函数实现几种格式的输出
-
import statsout
-
def output(data, format="text"):
-
output_function = getattr(statsout, "output_%s" % format)
- return output_function(data)
分享到:
相关推荐
### Python `getattr()` 函数详解及应用场景 #### 一、`getattr()` 函数概述 `getattr()` 是Python内置的一个函数,其主要功能是通过给定的对象和属性名(字符串形式)来获取对象的属性或方法。这对于实现动态加载...
与Python getattr(),setattr(),hasattr()API相似。 go-attr Golang库可在运行时作用于结构字段。 与Python getattr(),setattr(),hasattr()API相似。 该软件包提供了基于Golang“ reflect”库的用户...
在Python编程中,`getattr()`函数是一个非常实用的内置函数,它允许我们在运行时动态地获取对象的属性。这个函数的主要用途是当你需要根据某些条件来访问对象的属性,而这些属性的名称在编写代码时可能还不确定。...
在Python编程语言中,`getattr()`函数是一个非常实用的内置函数,它允许我们动态地从对象中获取属性。函数的基本语法是`getattr(object, name[, default])`,它接受三个参数: 1. `object`:这是一个对象,我们需要...
### Python中getattr函数和hasattr函数作用详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是非常实用且强大的内置函数,它们在处理对象属性时提供了灵活的操作方式。本文将深入探讨这两个函数的用法...
### 详解 Python 中 `__get__` 和 `__getattr__` 与 `__getattribute__` 的区别 在 Python 编程语言中,对象的属性访问机制是非常灵活且强大的。当我们试图通过点号(`.`)操作符去访问一个对象的属性时,Python 会...
python的getattr()函数的说明与代码示例
### Python中的`getattr`与`hasattr`函数详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是两个非常有用的内置函数,它们主要用于对象属性的操作,尤其在动态地访问对象属性时发挥着重要作用。本文将...
### Python的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对象的属性管理是非常重要的一个方面。为了更好地理解和使用对象的属性,Python提供了四个内置函数:`getattr()`、`setattr()`、`...
在Python中,hasattr()、getattr()、setattr()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...
在Python中,`__getattr__` 和 `__getattribute__` 都是用来处理对象属性访问的特殊方法,但它们在何时以及如何被调用上有显著的区别。了解这些区别对于编写更灵活、更具动态特性的代码至关重要。 首先,`__getattr...
### Python中的getattr(), setattr(), delattr(), hasattr()详解 在Python编程中,对对象属性的操作是非常常见的需求。本文将深入探讨Python内置函数`getattr()`, `setattr()`, `delattr()`, 和`hasattr()`的功能...
Python调用WebService接口是一种常见的数据交互方式,尤其在分布式系统和跨平台通信中。WebService接口通常基于SOAP(Simple Object Access Protocol)协议,提供了一种标准化的方式来交换结构化信息。在Python中,...
在Python编程中,`getattr()`是一个内置函数,用于获取对象的属性。本文主要探讨了如何利用`getattr()`实现分发模式,这是一种设计模式,用于根据特定条件选择并执行不同的方法。分发模式在处理多态性或动态行为时...
总的来说,`getitem`和`getattr`是Python中两个非常重要的方法,它们让我们有机会自定义对象属性的访问逻辑,从而实现更加灵活和定制化的类行为。在设计类时,可以根据实际需求考虑是否需要重写这些特殊方法,以达到...
在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...