getattr使用方法

作用

使用getattr()函数可以返回一个对象属性值

语法

getattr(object, name[, default])

参数

  • object — 对象
  • name — 字符串,对象属性
  • default — 默认返回值,如果不提供该参数,在没有对应属性时,将触发AttributeError

使用方法:


#普通调用方式
result = obj.method(args)
#使用getattr
func = getattr(obj, "method")
result = func(args)
#或者写成一行
result = getattr(obj, "method")(args)

更改为异常安全形式(AttributeError:对象中没有该属性)

try:func = getattr(obj, "method")
except AttributeError:...... deal
else:result = func(args)
#或者指定默认返回值
func = getattr(obj, "method", None)
if func:func(args)

使用getattr实现工厂方法:
根据传入format参数的不同,实现html,text,xml等不同格式的输出

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

使用这种方法能够通过传入不同的format参数去掉用statsout模块中不同的方法

getattr使用方法相关推荐

  1. Python- 反射 及部份内置属性方法

    @property 类的静态属性,封装内部具体实现细节,调用的时候类似调用数据属性.既可以访问类属性,也可以访问实例属性 ![](https://s1.51cto.com/images/blog/20 ...

  2. python反射和高阶内置方法

    1.isinstance:判断对象和类的关系 #判断结果返回bool类型 class A:pass class B(A):pass a = A() print(isinstance(a,A)) #Tr ...

  3. python所有的父类_python获取父类的子类(遍历,递归),并循环执行所有子类的某一方法...

    前言 换了新工作,踏足于python语言的开发,也把自己的学习过程记录下来. 一,递归获取某一父类的所有子类 all_subclasses = {'0': '0'} def get_all_class ...

  4. python getattr用法_python自省函数getattr的用法

    getattr是python里的一个内建函数 getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时 ...

  5. python getattr()函数

    其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载. 官方定义: getattr( ...

  6. Python 炫技操作(九):调用函数的九种方法

    系列导读 Python 炫技操作(一):条件语句的七种写法 Python 炫技操作(二):合并字典的七种方法 Python 炫技操作(三):判断是否包含子串的七种方法 Python 炫技操作(四):连 ...

  7. Python这些魔法方法和装饰器你都知道吗? O(≧▽≦)O Python小知识

    文章目录 魔法方法 __ len __ __ new __ cls与self的区别 Python派生内置不可变类型 __ enter __ 与 __ exit __ __ lt __. __ le _ ...

  8. python中的内置函数getattr()介绍及示例

    python中的内置函数getattr()介绍及示例 其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里 ...

  9. python中getattr详解

    python中getattr详解 目录 getattr详解 前言 一.消除if-else 二. 反射机制 三.getattr 详解 总结 getattr详解 前言 这两天在优化腾讯云迁移平台(Smar ...

最新文章

  1. 半导体量子芯片开发获重要进展
  2. MySQL初始化root密码以及root密码忘记解决方法
  3. 图文并茂,傻瓜都能看懂的 JVM 内存布局
  4. JS中undefined和null的区别,以及出现原因
  5. 程序员 30 岁前,该如何规划自己的职业发展?
  6. [视频教程]ASP.net入门课程
  7. python 重命名文件出现乱码_下载的文件名总是「乱码」?这里有各平台的解决方法...
  8. WebStorm导入git.exe报错 Empty git --version output:
  9. opencv(10)图像变换之边缘检测
  10. 关于print spooler无法启动
  11. 【解决使用webpack自动打包功能 ,报错 Content not from webpack is served from ‘ ‘ 且访问http://localhost:8080/ 为空 问题 】
  12. 第九周上机项目3:个人所得税计算器
  13. [转]Windows服务“允许服务与桌面交互”的使用和修改方法
  14. 2021-2027全球与中国豪华隐形眼镜市场现状及未来发展趋势
  15. OCP 11G 053题库解析汇总链接(1-200)
  16. Python glob()用法
  17. CSS单行/多行文本溢出显示省略号(...)
  18. 【Java】Java爬取国家统计局五级行政区划编码(省、市(州)、县(区)、乡(镇)、村)
  19. linux scp传输文件权限被拒绝,Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法...
  20. 轻松主义或许是一剂良药!

热门文章

  1. SAP 平行帐(Parallel Accounting)
  2. 7-39 QQ Account Management (25 分)【c++】【中英文】
  3. fedora14安装中标普华office成功
  4. Unity航海寻宝计划-插件资源篇-战斗坦克套件项目
  5. Flink log4j配置
  6. Python实现快速排序算法
  7. Linux开源存储全栈详解
  8. SortedMap集合
  9. NOIP 2008 传球游戏
  10. php key数组转字符串,学习猿地-php怎么将数组转化成字符串