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中endswith()函数的基本使用
Apr 07 Python
用Python实现一个简单的能够发送带附件的邮件程序的教程
Apr 08 Python
Python的Flask框架标配模板引擎Jinja2的使用教程
Jul 12 Python
Python 读写文件和file对象的方法(推荐)
Sep 12 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
Python解决抛小球问题 求小球下落经历的距离之和示例
Feb 01 Python
Python实现对一个函数应用多个装饰器的方法示例
Feb 09 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
Python OpenCV实现视频分帧
Jun 01 Python
Python基于os.environ从windows获取环境变量
Jun 09 Python
Python同时处理多个异常的方法
Jul 28 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自定义函数返回多个值
2006/11/26 PHP
php 空格,换行,跳格使用说明
2009/12/18 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
PHP动态规划解决0-1背包问题实例分析
2015/03/23 PHP
THINKPHP在添加数据的时候获取主键id的值方法
2017/04/03 PHP
PHP封装的简单连接MongoDB类示例
2019/02/13 PHP
Thinkphp5+Redis实现商品秒杀代码实例讲解
2020/12/29 PHP
js window.onload 加载多个函数的方法
2009/11/02 Javascript
JavaScript 操作键盘的Enter事件(键盘任何事件),兼容多浏览器
2010/10/11 Javascript
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
jquery each的几种常用的使用方法示例
2014/01/21 Javascript
JQuery的Ajax请求实现局部刷新的简单实例
2014/02/11 Javascript
jQuery获取对象简单实现方法小结
2014/10/30 Javascript
jQuery基于图层模仿五星星评价功能的方法
2015/05/07 Javascript
JQuery用户名校验的具体实现
2016/03/18 Javascript
jQuery树形插件jquery.simpleTree.js用法分析
2016/09/05 Javascript
Vue中的v-cloak使用解读
2017/03/27 Javascript
js Element Traversal规范中的元素遍历方法
2018/04/19 Javascript
Vue中的scoped实现原理及穿透方法
2018/05/15 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
vue实现两个组件之间数据共享和修改操作
2020/11/12 Javascript
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
Python中常用的os操作汇总
2020/11/05 Python
python 使用openpyxl读取excel数据
2021/02/18 Python
Vilebrequin欧洲官网:法国豪华泳装品牌(男士沙滩裤)
2018/04/14 全球购物
在家更换处方镜片:Lensabl
2019/05/01 全球购物
Interhome丹麦:在线预订度假屋和公寓
2019/07/18 全球购物
目标责任书范文
2014/04/14 职场文书
毕业大学生自荐信
2014/06/17 职场文书
建筑工地大门标语
2014/06/18 职场文书
爱情保证书
2015/01/17 职场文书
怎样写辞职信
2015/02/27 职场文书
2015年护士节活动策划方案
2015/05/04 职场文书
转正申请报告格式
2015/05/15 职场文书
python实现简单倒计时功能
2021/04/21 Python
Android实现获取短信验证码并自动填充
2023/05/21 Java/Android