python中的内置函数getattr()介绍及示例
2017-06-24 16:07
471 查看
在python的官方文档中:getattr()的解释如下:
?
根据属性名称返回对象值。如果“name”是对对象属性的名称,则返回对应属性的值。
?
这段代码执行的结果是:
?
第一个函数tryattribute0()非常好理解,就如同定义里说的一样。第二个函数tryattribute1()就有一点费解了。其实原理并不复杂,我们看到fun的type是 instancemethod,这里你可以认为:对于函数,getattr()的返回值是一个指针,指针赋值给接受它的变量,以后call这个变量就等于调用变量指向的函数。
原理我们知道了,那getattr的作用是什么呢?
你熟悉java或者c#中的反射么?反射的一个重要作用就是延迟加载,这样可以解耦,这样可以让系统运行的更有效率。作为动态语言,python显然在这方面要更加强大,
getattr()就是实现python反射的一块积木,结合其它方法如setattr(),dir() 等,我们可以做出很多有趣的事情。
我们看以下场景:
1.我需要在一个类中动态添加其它类中有的方法:
?
我们只需要:
?
这样a就可以调用B中的'非私有'方法啦。
?
?
?
原理我们知道了,那getattr的作用是什么呢?
你熟悉java或者c#中的反射么?反射的一个重要作用就是延迟加载,这样可以解耦,这样可以让系统运行的更有效率。作为动态语言,python显然在这方面要更加强大,
getattr()就是实现python反射的一块积木,结合其它方法如setattr(),dir() 等,我们可以做出很多有趣的事情。
我们看以下场景:
1.我需要在一个类中动态添加其它类中有的方法:
?
?
相关文章推荐
- python中的内置函数getattr()介绍及示例
- python中的内置函数getattr()介绍及示例
- python 内置函数isinstance(),hasattr(),getattr(),setattr()的介绍
- Dive Into Python 学习记录3-getattr 介绍/过滤列表/and or/lambda 函数
- python中的内置函数getattr()
- HMM原理介绍 示例 python代码实现
- python内置函数5-getattr()
- python中常用的内置函数filter,setattr,delattr,getattr,hasattr
- CGI介绍及使用Python来开发CGI应用示例
- 梯度下降法介绍及利用Python实现的方法示例
- Python常用内置函数介绍【filter,map,reduce,apply,zip】
- PYTHON getattr setattr hasattr delattr内置函数
- Python标准库:内置函数hasattr() getattr() setattr() 函数使用方法详解
- Python标准库:内置函数getattr(object, name[, default])
- Python内置函数之filter map reduce介绍
- python内置函数getattr
- Python常用模块中常用内置函数的具体介绍
- Python __setattr__、 __getattr__、 __delattr__、__call__用法示例
- Python内置函数(25)——getattr