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的Django框架中的通用视图
May 04 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python连接数据库学习之DB-API详解
Feb 07 Python
一道python走迷宫算法题
Jan 22 Python
python通过伪装头部数据抵抗反爬虫的实例
May 07 Python
PyCharm设置每行最大长度限制的方法
Jan 16 Python
Django uwsgi Nginx 的生产环境部署详解
Feb 02 Python
Django页面数据的缓存与使用的具体方法
Apr 23 Python
浅析pandas 数据结构中的DataFrame
Oct 12 Python
Python发送手机动态验证码代码实例
Feb 28 Python
Pycharm Git 设置方法
Sep 15 Python
如何用 Python 处理不平衡数据集
Jan 04 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 日,周,月点击排行统计
2012/01/11 PHP
PHP新手用的Insert和Update语句构造类
2012/03/31 PHP
php中$_GET与$_POST过滤sql注入的方法
2014/11/03 PHP
PHP请求Socket接口测试实例
2016/08/12 PHP
thinkPHP5框架闭包函数与子查询传参用法示例
2018/08/02 PHP
PHP使用PDO、mysqli扩展实现与数据库交互操作详解
2019/07/20 PHP
TP5框架简单登录功能实现方法示例
2019/10/31 PHP
jQuery实现有动画淡出效果的二级折叠菜单代码
2015/10/17 Javascript
jQuery中的AjaxSubmit使用讲解
2016/09/25 Javascript
Angularjs中的页面访问权限怎么设置
2016/11/11 Javascript
JavaScript BASE64算法实现(完美解决中文乱码)
2017/01/10 Javascript
javascript内存分配原理实例分析
2017/04/10 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
使用imba.io框架得到比 vue 快50倍的性能基准
2019/06/17 Javascript
vue实现评价星星功能
2020/06/30 Javascript
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
python 命名规范知识点汇总
2020/02/14 Python
Python中如何引入第三方模块
2020/05/27 Python
python--shutil移动文件到另一个路径的操作
2020/07/13 Python
Django admin组件的使用
2020/10/24 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
药学专业大专生的自我评价
2013/12/12 职场文书
计算机专业优秀大学生自我总结
2014/01/21 职场文书
教师节促销活动方案
2014/02/14 职场文书
护士长竞聘演讲稿
2014/04/30 职场文书
质量承诺书格式
2014/05/20 职场文书
励志演讲稿200字
2014/08/21 职场文书
2014年向国旗敬礼活动总结
2014/09/27 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
党校团干班培训心得体会
2016/01/06 职场文书
文案策划岗位个人自我评价(范文)
2019/08/08 职场文书
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
Python可视化学习之seaborn绘制矩阵图详解
2022/02/24 Python