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中对list去重的多种方法
Sep 18 Python
github配置使用指南
Nov 18 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
Nov 02 Python
在Python web中实现验证码图片代码分享
Nov 09 Python
python验证码识别教程之利用滴水算法分割图片
Jun 05 Python
Python3常用内置方法代码实例
Nov 18 Python
python使用协程实现并发操作的方法详解
Dec 27 Python
使用pytorch搭建AlexNet操作(微调预训练模型及手动搭建)
Jan 18 Python
Python基于mediainfo批量重命名图片文件
Dec 29 Python
python编程的核心知识点总结
Feb 08 Python
总结几个非常实用的Python库
Jun 26 Python
Python道路车道线检测的实现
Jun 27 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
thinkPHP交易详情查询功能详解
2016/12/02 PHP
php的优点总结 php有哪些优点
2019/07/19 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
jQuery快速上手:写jQuery与直接写JS的区别详细解析
2013/08/26 Javascript
js操作cookie保存浏览记录的方法
2015/12/25 Javascript
jQuery链式调用与show知识浅析
2016/05/11 Javascript
jquery 获取select数组与name数组长度的实现代码
2016/06/20 Javascript
Vuex简单入门
2017/04/19 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
微信小程序实现星级评价效果
2018/12/28 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
JavaScript Array对象使用方法解析
2019/09/24 Javascript
JavaScript 实现同时选取多个时间段的方法
2019/10/17 Javascript
微信小程序实现树莓派(raspberry pi)小车控制
2020/02/12 Javascript
[01:14:41]DOTA2-DPC中国联赛定级赛 iG vs Magma BO3第一场 1月8日
2021/03/11 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
python操作redis的方法
2015/07/07 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
Python中字典和集合学习小结
2017/07/07 Python
理论讲解python多进程并发编程
2018/02/09 Python
python 使用turtule绘制递归图形(螺旋、二叉树、谢尔宾斯基三角形)
2019/05/30 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
德国购买健身器材:AsVIVA
2017/08/09 全球购物
德国机车企业:FC-Moto
2017/10/27 全球购物
计算机网络专业推荐信
2013/11/24 职场文书
兼职学生的自我评价
2013/11/24 职场文书
应届生个人求职信模板
2013/11/26 职场文书
幼儿园教育教学反思
2014/01/31 职场文书
外贸员简历中的自我评价
2014/03/04 职场文书
奥林匹克运动会口号
2014/06/19 职场文书
2014年人事科工作总结
2014/11/19 职场文书
Python实现byte转integer
2021/06/03 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python