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函数式编程
Jun 09 Python
跟老齐学Python之集成开发环境(IDE)
Sep 12 Python
跟老齐学Python之关于类的初步认识
Oct 11 Python
Python中常见的异常总结
Feb 20 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
Python pymongo模块常用操作分析
Sep 01 Python
Selenium的使用详解
Oct 19 Python
pyqt5 使用cv2 显示图片,摄像头的实例
Jun 27 Python
python kafka 多线程消费者&amp;手动提交实例
Dec 21 Python
关于Tensorflow分布式并行策略
Feb 03 Python
python与idea的集成的实现
Nov 20 Python
Python OpenCV实现图像模板匹配详解
Apr 07 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中把有符号整型转换为无符号整型方法
2015/05/27 PHP
php图片添加文字水印实现代码
2016/03/15 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
firefox插件Firebug的使用教程
2010/01/02 Javascript
javascript级联下拉列表实例代码(自写)
2013/05/10 Javascript
js创建表单元素并使用submit进行提交
2014/08/14 Javascript
jQuery实现列表的全选功能
2015/03/18 Javascript
php+ajax+jquery实现点击加载更多内容
2015/05/03 Javascript
简介JavaScript中substring()方法的使用
2015/06/06 Javascript
JavaScript数据类型判定的总结笔记
2015/07/31 Javascript
JavaScript中this的9种应用场景及三种复合应用场景
2015/09/12 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
JavaScript中的操作符类型转换示例总结
2016/05/30 Javascript
jQuery EasyUI Accordion可伸缩面板组件使用详解
2017/02/28 Javascript
不使用JavaScript实现菜单的打开和关闭效果demo
2018/05/01 Javascript
JavaScript检查数据中是否存在相同的元素(两种方法)
2018/10/07 Javascript
了解JavaScript中let语句
2019/05/30 Javascript
微信小程序iOS下拉白屏晃动问题解决方案
2019/10/12 Javascript
Bootstrap table 服务器端分页功能实现方法示例
2020/06/01 Javascript
[06:33]DOTA2亚洲邀请赛小组赛第二日 TOP10精彩集锦
2015/01/31 DOTA
[01:38]完美世界DOTA2联赛(PWL)宣传片:第一站
2020/10/26 DOTA
python通过ftplib登录到ftp服务器的方法
2015/05/08 Python
Python Property属性的2种用法
2015/06/21 Python
分析python请求数据
2018/08/19 Python
利用Python实现kNN算法的代码
2019/08/16 Python
解决Django Haystack全文检索为空的问题
2020/05/19 Python
Python如何实现后端自定义认证并实现多条件登陆
2020/06/22 Python
使用python把xmind转换成excel测试用例的实现代码
2020/10/12 Python
Berghaus官网:户外服装和设备,防水服
2020/01/17 全球购物
艺术节主持词
2014/04/02 职场文书
个人租房协议书(范本)
2014/10/14 职场文书
老干部工作汇报材料
2014/10/28 职场文书
活动费用申请报告
2015/05/15 职场文书
关于CSS浮动与取消浮动的问题
2021/06/28 HTML / CSS
java版 联机五子棋游戏
2022/05/04 Java/Android
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS