`
swingfly
  • 浏览: 53604 次
  • 性别: 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函数和hasattr函数作用详解 #### 一、引言 在Python编程语言中,`getattr`和`hasattr`是非常实用且强大的内置函数,它们在处理对象属性时提供了灵活的操作方式。本文将深入探讨这两个函数的用法...

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

    总之,`getattr()`函数是Python中一个强大的工具,它增强了我们处理对象属性的能力,尤其是在需要动态操作属性或者实现诸如工厂模式这样的设计模式时。通过理解并恰当使用`getattr()`,我们可以编写更加灵活和健壮的...

    python的getattr()函数

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

    VB函数参考大全 函数

    在编程世界中,Visual Basic(VB)是一种广泛使用的编程语言,尤其在开发Windows应用程序时。VB函数是VB编程中的核心元素,它们允许程序员...在实践中不断学习和探索,你会发现VB函数是解决各种编程问题的强大工具。

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

    总的来说,`getattr()`在实现分发模式时是一个强大的工具,它可以动态地查找和调用对象的属性,这在处理多态性和动态行为的系统中非常有用。通过正确地使用`getattr()`,我们可以构建更加灵活和可扩展的代码,同时也...

    Access函数汇总.pdf

    41. GetAttr函数:返回文件的属性。 42. GetObject函数:获取对ActiveX对象的引用。 43. GetSetting函数:从应用程序的注册表或INI文件中检索设置。 44. Hex函数:将数字转换为十六进制字符串。 45. Hour函数:返回...

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

    6个简单而有用的VBA自定义函数

    它利用`GetAttr`函数获取路径属性,如果路径有效,会返回一个非零值,否则会引发错误。以下是`PathExists`函数的代码: ```vb Private Function PathExists(pname) As Boolean ' 如果路径存在返回TRUE Dim x As ...

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

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

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

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

    浅谈 Python 魔法函数 __getattr__ 与 __getattribute__

    在Python编程语言中,有一些特殊的内置方法被称为“魔法函数”(Magic Methods),它们通常以两个下划线开头和结尾,例如`__getattr__`和`__getattribute__`。这两个魔法函数都涉及到对象属性的访问,但它们在处理不...

    VBA函数大全(自己整理的)

    GetAttr 函数 - **功能**: 返回一个 Integer,此为一个文件、目录、或文件夹的属性。 - **示例**: `GetAttr("C:\temp\example.txt")` 返回文件属性。 #### 37. GetObject 函数 - **功能**: 返回文件中的 ActiveX ...

    Python内置函数案例演示.pdf

    23. getattr()函数:返回对象属性的值。 24. globals()函数:以字典类型返回当前的全局符号表。 25. hasattr()函数:用于判断对象是否包含对应的属性。 26. hash()函数:返回对象(字符串、数字、元组等)的哈希...

    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的hasattr() getattr() setattr() 函数使用方法

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

    ASP.NET常用函数汇总

    以上列举的函数仅是ASP.NET中众多内置函数的一部分,它们在不同的场景下发挥着重要作用,无论是数据处理、格式化、文件操作还是数学计算,都提供了强大的支持。掌握这些函数的使用方法,将极大地提高ASP.NET开发者的...

    Visual basic (VB)完整-全部-函数大全-函数速查手册

    Dir、GetAttr和SetAttr常数是文件操作函数中使用的常量。例如,vbNormal表示正常的文件属性,vbReadOnly表示只读属性,vbHidden表示隐藏属性,vbVolume表示卷标属性,vbDirectory表示目录属性,vbArchive表示自从...

Global site tag (gtag.js) - Google Analytics