getattr使用方法
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使用方法相关推荐
- Python- 反射 及部份内置属性方法
@property 类的静态属性,封装内部具体实现细节,调用的时候类似调用数据属性.既可以访问类属性,也可以访问实例属性 ![](https://s1.51cto.com/images/blog/20 ...
- python反射和高阶内置方法
1.isinstance:判断对象和类的关系 #判断结果返回bool类型 class A:pass class B(A):pass a = A() print(isinstance(a,A)) #Tr ...
- python所有的父类_python获取父类的子类(遍历,递归),并循环执行所有子类的某一方法...
前言 换了新工作,踏足于python语言的开发,也把自己的学习过程记录下来. 一,递归获取某一父类的所有子类 all_subclasses = {'0': '0'} def get_all_class ...
- python getattr用法_python自省函数getattr的用法
getattr是python里的一个内建函数 getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时 ...
- python getattr()函数
其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载. 官方定义: getattr( ...
- Python 炫技操作(九):调用函数的九种方法
系列导读 Python 炫技操作(一):条件语句的七种写法 Python 炫技操作(二):合并字典的七种方法 Python 炫技操作(三):判断是否包含子串的七种方法 Python 炫技操作(四):连 ...
- Python这些魔法方法和装饰器你都知道吗? O(≧▽≦)O Python小知识
文章目录 魔法方法 __ len __ __ new __ cls与self的区别 Python派生内置不可变类型 __ enter __ 与 __ exit __ __ lt __. __ le _ ...
- python中的内置函数getattr()介绍及示例
python中的内置函数getattr()介绍及示例 其实getattr()这个方法最主要的作用是实现反射机制.也就是说可以通过字符串获取方法实例.这样,你就可以把一个类可能要调用的方法放在配置文件里 ...
- python中getattr详解
python中getattr详解 目录 getattr详解 前言 一.消除if-else 二. 反射机制 三.getattr 详解 总结 getattr详解 前言 这两天在优化腾讯云迁移平台(Smar ...
最新文章
- 半导体量子芯片开发获重要进展
- MySQL初始化root密码以及root密码忘记解决方法
- 图文并茂,傻瓜都能看懂的 JVM 内存布局
- JS中undefined和null的区别,以及出现原因
- 程序员 30 岁前,该如何规划自己的职业发展?
- [视频教程]ASP.net入门课程
- python 重命名文件出现乱码_下载的文件名总是「乱码」?这里有各平台的解决方法...
- WebStorm导入git.exe报错 Empty git --version output:
- opencv(10)图像变换之边缘检测
- 关于print spooler无法启动
- 【解决使用webpack自动打包功能 ,报错 Content not from webpack is served from ‘ ‘ 且访问http://localhost:8080/ 为空 问题 】
- 第九周上机项目3:个人所得税计算器
- [转]Windows服务“允许服务与桌面交互”的使用和修改方法
- 2021-2027全球与中国豪华隐形眼镜市场现状及未来发展趋势
- OCP 11G 053题库解析汇总链接(1-200)
- Python glob()用法
- CSS单行/多行文本溢出显示省略号(...)
- 【Java】Java爬取国家统计局五级行政区划编码(省、市(州)、县(区)、乡(镇)、村)
- linux scp传输文件权限被拒绝,Linux的远程传输文件scp及出现Permission denied (publickey).lost connection问题解决方法...
- 轻松主义或许是一剂良药!