Python通过getattr函数获取对象的属性值


Posted in Python onOctober 16, 2020

英文文档:

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 attribute. For example, getattr(x, 'foobar') is equivalent to x.foobar. If the named attribute does not exist, default is returned if provided, otherwise AttributeError is raised.

获取对象的属性值

说明:

1. 函数功能是从对象object中获取名称为name的属性,等效与调用object.name。

#定义类Student
>>> class Student:
  def __init__(self,name):
    self.name = name

    
>>> s = Stduent('Aim')
>>> getattr(s,'name') #等效于调用s.name
'Aim'
>>> s.name
'Aim'

2. 函数第三个参数default为可选参数,如果object中含义name属性,则返回name属性的值,如果没有name属性,则返回default值,如果default未传入值,则报错。

#定义类Student
>>> class Student:
  def __init__(self,name):
    self.name = name

>>> getattr(s,'name') #存在属性name
'Aim'

>>> getattr(s,'age',6) #不存在属性age,但提供了默认值,返回默认值
6

>>> getattr(s,'age') #不存在属性age,未提供默认值,调用报错
Traceback (most recent call last):
 File "<pyshell#17>", line 1, in <module>
  getattr(s,'age')
AttributeError: 'Stduent' object has no attribute 'age'

与__getattr__的区别:

__getattr__是类的内置方法,当找不到某个属性时会调用该方法;找到就不会调用.

getattr与类无关.

一个例子:作为data的代理类,可以以这种方式来使用data的属性.

class DataProxy(...):
  def __getattr__(self, item):
    return getattr(self.data, item)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python程序抓取网页的HTML信息的一个小实例
May 02 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
用Python删除本地目录下某一时间点之前创建的所有文件的实例
Dec 14 Python
对python中的logger模块全面讲解
Apr 28 Python
python读取图片并修改格式与大小的方法
Jul 24 Python
Django实现支付宝付款和微信支付的示例代码
Jul 25 Python
matplotlib.pyplot绘图显示控制方法
Jan 15 Python
Django CBV与FBV原理及实例详解
Aug 12 Python
Python搭建HTTP服务过程图解
Dec 14 Python
如何使用python切换hosts文件
Apr 29 Python
pycharm 关掉syntax检查操作
Jun 09 Python
keras-siamese用自己的数据集实现详解
Jun 10 Python
pandas处理csv文件的方法步骤
Oct 16 #Python
python爬取”顶点小说网“《纯阳剑尊》的示例代码
Oct 16 #Python
Python使用内置函数setattr设置对象的属性值
Oct 16 #Python
python pymysql库的常用操作
Oct 16 #Python
Python基于callable函数检测对象是否可被调用
Oct 16 #Python
python collections模块的使用
Oct 16 #Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 #Python
You might like
PHP代码优化之成员变量获取速度对比
2014/02/28 PHP
通过dbi使用perl连接mysql数据库的方法
2014/04/16 PHP
php生成QRcode实例
2014/09/22 PHP
PHP中浮点数计算比较及取整不准确的解决方法
2015/01/09 PHP
Smarty最简单实现列表奇偶变色的方法
2015/07/01 PHP
laravel5.4生成验证码的实例讲解
2017/08/05 PHP
用js实现的抽象CSS圆角效果!!
2007/05/03 Javascript
javascript中有趣的反柯里化深入分析
2012/12/05 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
JS跨域交互(jQuery+php)之jsonp使用心得
2016/07/01 Javascript
JQuery Dialog对话框 不能通过Esc关闭的原因分析及解决办法
2017/01/18 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
canvas+gif.js打造自己的数字雨头像的示例代码
2017/10/26 Javascript
vue 国际化 vue-i18n 双语言 语言包
2018/06/07 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
Django查找网站项目根目录和对正则表达式的支持
2015/07/15 Python
利用Python脚本实现ping百度和google的方法
2017/01/24 Python
python difflib模块示例讲解
2017/09/13 Python
使用Python的Turtle绘制哆啦A梦实例
2019/11/21 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
找Python安装目录,设置环境路径以及在命令行运行python脚本实例
2020/03/09 Python
Python实现计算图像RGB均值方式
2020/06/04 Python
python3访问字典里的值实例方法
2020/11/18 Python
捷克多品牌在线时尚商店:ANSWEAR.cz
2020/10/03 全球购物
会计专业毕业生求职信分享
2014/01/03 职场文书
保安拾金不昧表扬信
2014/01/15 职场文书
大学生自我鉴定评语
2014/01/27 职场文书
给校长的建议书200字
2014/05/16 职场文书
管理标语大全
2014/06/24 职场文书
党员干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
Python并发编程实例教程之线程的玩法
2021/06/20 Python