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函数作用的相关知识,非常不错具有参考借鉴价值,需要的朋友可以参考下
看了下函数本身的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 ...
魔法函数 getattr 与 getattribute 简单说明 __getattr__ 与 __getattribute__ 魔法函数的使用 目录魔法函数 __getattr__ 与 __getattribute____getattr__魔法函数作用__getattribute__魔法函数总结 书上说,天下...
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函数 (1)使用 getattr 函数,可以得到一个直到运行时才知道名称的函数的引用。 >>> li = ["Larry", "Curly"] >>> li.pop // 该语句获取列表的 pop 方法的引用,注意该语句并不是调用 pop 方法,调用 pop ...
在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()函数使用方法代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数的对象,然后就可以进行执行,如下所示: ...
主要介绍了详解Python的hasattr() getattr() setattr() 函数使用方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
getattr()函数是Python自省的核心函数,具体使用大体如下: 获取对象引用getattr Getattr用于返回一个对象属性,或者方法 class A: def __init__(self): self.name = 'zhangjing' #self.age='' def method(self)...
`getattr`函数属于内建函数,可以通过函数名称获取 复制代码 代码如下: value = obj.attribute value = getattr(obj, “attribute”) 使用`getattr`来实现工厂模式 复制代码 代码如下: #一个模块支持html、text、xml...
在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr()、getattr()、setattr()函数的使用也一并学习了一下。 正文: 1. hasattr(object, name) ...
1. getattr()函数是Python自省的核心函数,具体使用大体如下: class A: def __init__(self): self.name = 'zhangjing' #self.age='24' def method(self): print"method print" Instance = A() print getattr...
有些对大家来说比较熟悉,比如abs(), max(), sum()… 也有一些比较陌生,比如locals(), all(), compile(), getattr()… 今天按照类别扼要总结。 1 类型相关 69个内置函数中,与类型相关的指,把入参包装为某种类型,...