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》有一个很经典的例子。
让我们假设有一个以 HTML
、XML
和普通文本格式打印站点统计的程序。输出格式在命令行中指定,或者保存在配置文件中。statsout
模块定义了三个函数:output_html
、output_xml
和 output_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`是非常实用且强大的内置函数,它们在处理对象属性时提供了灵活的操作方式。本文将深入探讨这两个函数的用法...
总之,`getattr()`函数是Python中一个强大的工具,它增强了我们处理对象属性的能力,尤其是在需要动态操作属性或者实现诸如工厂模式这样的设计模式时。通过理解并恰当使用`getattr()`,我们可以编写更加灵活和健壮的...
python的getattr()函数的说明与代码示例
在编程世界中,Visual Basic(VB)是一种广泛使用的编程语言,尤其在开发Windows应用程序时。VB函数是VB编程中的核心元素,它们允许程序员...在实践中不断学习和探索,你会发现VB函数是解决各种编程问题的强大工具。
总的来说,`getattr()`在实现分发模式时是一个强大的工具,它可以动态地查找和调用对象的属性,这在处理多态性和动态行为的系统中非常有用。通过正确地使用`getattr()`,我们可以构建更加灵活和可扩展的代码,同时也...
41. GetAttr函数:返回文件的属性。 42. GetObject函数:获取对ActiveX对象的引用。 43. GetSetting函数:从应用程序的注册表或INI文件中检索设置。 44. Hex函数:将数字转换为十六进制字符串。 45. Hour函数:返回...
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...
它利用`GetAttr`函数获取路径属性,如果路径有效,会返回一个非零值,否则会引发错误。以下是`PathExists`函数的代码: ```vb Private Function PathExists(pname) As Boolean ' 如果路径存在返回TRUE Dim x As ...
getattr函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用。 >>> li = ["Larry", "Curly"] >>> li.pop // 该语句获取列表的 pop 方法的引用,注意该语句并不是调用 pop 方法,调用 pop ...
### Python `getattr()` 函数详解及应用场景 #### 一、`getattr()` 函数概述 `getattr()` 是Python内置的一个函数,其主要功能是通过给定的对象和属性名(字符串形式)来获取对象的属性或方法。这对于实现动态加载...
在Python编程语言中,有一些特殊的内置方法被称为“魔法函数”(Magic Methods),它们通常以两个下划线开头和结尾,例如`__getattr__`和`__getattribute__`。这两个魔法函数都涉及到对象属性的访问,但它们在处理不...
GetAttr 函数 - **功能**: 返回一个 Integer,此为一个文件、目录、或文件夹的属性。 - **示例**: `GetAttr("C:\temp\example.txt")` 返回文件属性。 #### 37. GetObject 函数 - **功能**: 返回文件中的 ActiveX ...
23. getattr()函数:返回对象属性的值。 24. globals()函数:以字典类型返回当前的全局符号表。 25. hasattr()函数:用于判断对象是否包含对应的属性。 26. hash()函数:返回对象(字符串、数字、元组等)的哈希...
在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()是三个用于操作对象属性和方法的内置函数。本文将详细讲解这三个函数的使用方法和应用场景。 首先,我们来看看hasattr()函数。这个函数用于判断一个对象中是否存在特定...
以上列举的函数仅是ASP.NET中众多内置函数的一部分,它们在不同的场景下发挥着重要作用,无论是数据处理、格式化、文件操作还是数学计算,都提供了强大的支持。掌握这些函数的使用方法,将极大地提高ASP.NET开发者的...
Dir、GetAttr和SetAttr常数是文件操作函数中使用的常量。例如,vbNormal表示正常的文件属性,vbReadOnly表示只读属性,vbHidden表示隐藏属性,vbVolume表示卷标属性,vbDirectory表示目录属性,vbArchive表示自从...