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

强大的getattr函数

阅读更多

      python是面向对象的语言,而python中的函数也是对象,通过使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用。例如:

 

li = ["Larry", "Curly"]
getattr(li, "pop")           

    getattr函数返回的是list的pop函数的引用,方法名称是作为一个字符串参数传递给 getattr 函数的。你可以通过getattr(object,"function")()来使用一个函数。例如:

getattr(li, "append")("Moe") 

    getattr 不仅仅适用于内置数据类型,也可作用于模块。使用方法和内置数据类型基本相同。

    getattr 常见的使用模式是作为一个分发者。在《Dive Into Python》有一个很经典的例子。

    让我们假设有一个以 HTMLXML 和普通文本格式打印站点统计的程序。输出格式在命令行中指定,或者保存在配置文件中。statsout 模块定义了三个函数:output_htmloutput_xmloutput_text 。然后主程序定义了唯一的输出函数,如下:

import statsout
def output(data, format="text"):                              
    output_function = getattr(statsout, "output_%s" % format) 
    return output_function(data)  

    output 函数接收一个必备参数 data ,和一个可选参数 format 。如果没有指定 format 参数,其缺省值是 text 并完成普  通文本输出函数的调用。你可以连接 format 参数值和 "output_" 来创建一个函数名称作为参数值,然后从 statsout 模块中取得该函数。这种方式允许今后很容易的扩展程序以支持其它的输出格式,而且无需修改分发函数。所要做的仅仅是向 statsout 中添加一个函数,比如 output_pdf ,之后只要将 “pdf” 作为 format 的参数值传递给 output 函数即可。

 

 

分享到:
评论

相关推荐

    浅谈python中的getattr函数 hasattr函数

    下面小编就为大家带来一篇浅谈python中的getattr函数 hasattr函数。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

    主要介绍了Python中getattr函数和hasattr函数作用的相关知识,非常不错具有参考借鉴价值,需要的朋友可以参考下

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

    看了下函数本身的doc复制代码 代码如下:getattr(object, name[, default]) -> value Get a named attribute from an object; getattr(x, ‘y’) is equivalent to x.y. When a default argument is given, it is ...

    浅谈 Python 魔法函数 __getattr__ 与 __getattribute__

    魔法函数 getattr 与 getattribute 简单说明 __getattr__ 与 __getattribute__ 魔法函数的使用 目录魔法函数 __getattr__ 与 __getattribute____getattr__魔法函数作用__getattribute__魔法函数总结 书上说,天下...

    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 attributes, the result is the value of that...

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

    getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用。 >>> li = ["Larry", "Curly"] >>> li.pop // 该语句获取列表的 pop 方法的引用,注意该语句并不是调用 pop 方法,调用 pop ...

    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...

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

    主要介绍了浅谈使用Python内置函数getattr实现分发模式,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下

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

    主要介绍了Python getattr()函数使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    python中根据字符串调用函数的实现方法

    在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数的对象,然后就可以进行执行,如下所示: ...

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

    主要介绍了详解Python的hasattr() getattr() setattr() 函数使用方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

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

    getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing'  #self.age='' def method(self)...

    Python __setattr__、 __getattr__、 __delattr__、__call__用法示例

    `getattr`函数属于内建函数,可以通过函数名称获取 复制代码 代码如下: value = obj.attribute value = getattr(obj, “attribute”) 使用`getattr`来实现工厂模式 复制代码 代码如下: #一个模块支持html、text、xml...

    python中hasattr()、getattr()、setattr()函数的使用

     在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr()、getattr()、setattr()函数的使用也一并学习了一下。 正文:  1. hasattr(object, name) ...

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

    1. getattr()函数是Python自省的核心函数,具体使用大体如下: class A: def __init__(self): self.name = 'zhangjing' #self.age='24' def method(self): print"method print" Instance = A() print getattr...

    Python 69个内置函数分8类总结

    有些对大家来说比较熟悉,比如abs(), max(), sum()… 也有一些比较陌生,比如locals(), all(), compile(), getattr()… 今天按照类别扼要总结。 1 类型相关 69个内置函数中,与类型相关的指,把入参包装为某种类型,...

Global site tag (gtag.js) - Google Analytics