python内置的两个看起来很简单,一般也不怎么用得上的函数,getattr函数和setattr函数。getattr函数用于获取对象的某个属性的值,setattr函数用于设置对象的某个属性值。

getattr函数

获取对象的某个属性值,如果属性不存在,而且又没有提供default值,抛出AttributeError。

以上代码首先用dir查看了10这个int对象的所有属性,然后获取bit_length属性,发现是一个函数,获取real属性,就是10。再获取一个浮点数10.12345的real属性,再获取一个不存在的kkkk属性,不过提供了默认值abcde,返回abcde,因为kkkk属性不存在。如果不提供默认值,获取不存在的kkkk属性值,抛出AttributeError异常。

python还有一个内置函数hasattr,就是通过getattr来实现的, This is implemented by calling getattr(object, name) and seeing whether it raises an AttributeError or not.)

setattr函数

顾名思义,就是设置对象的某个属性值。比较有趣的一个细节是,被设置的属性,可以是对象还不存在的属性。不过只能对自定义的对象进行这种操作,内置对象不可以。

>>> class person():

... def __init__(self, age):

... self.age = age

...

>>> p = person(40)

>>> p.age

40

>>> setattr(p, 'gender', 'male')

>>> p.gender

'male'

>>> setattr(p, 'age', 100)

>>> p.age

100

person这个class,一开始只有age属性,后通过setattr函数,增加了gender属性。我们其实本来就可以对对象任意增加不存在的属性值,只是如果使用setattr函数,带来一个好处,即属性的名称也可以是动态的,比如属性的名称通过某个变量来获取。

-- EOF --

python的getattr和setattr_getattr函数和setattr函数相关推荐

  1. python内置函数之setattr() 函数

    文章目录 setattr() 函数 描述 语法 参数 返回值 实例 setattr() 函数 描述 setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的. 语法 ...

  2. Python 3 内置函数 - `setattr()`函数

    Python 3 内置函数 - setattr()函数 0. setattr()函数 用于设置属性值,该属性不一定是存在的. setattr(x, 'y', v) 等于 x.y = v 1. 使用方法 ...

  3. python中attr_python中hasattr()、getattr()、setattr()函数的使用

    引言: 在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr ...

  4. python中hasattr()、getattr()、setattr()函数的使用

    在阅读高手写的代码时,有很多简写的形式,如果没有见过还真的看不太懂是什么意思,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().s ...

  5. python hasattr函数_Python3 hasattr()、getattr()、setattr()函数简介

    Python3 hasattr().getattr().setattr()函数简介 一.hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对 ...

  6. Python的hasattr() getattr() setattr() 函数使用方法详解

    Python的hasattr() getattr() setattr() 函数使用方法详解 (一) hasattr(object,name) 函数 判断一个对象里面是否有 name 属性或者 name ...

  7. Python学习: hasattr()、getattr()、setattr()函数简介

    一.hasattr(object, name) 判断object对象中是否存在name属性,当然对于python的对象而言,属性包含变量和方法:有则返回True,没有则返回False:需要注意的是na ...

  8. python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法

    hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...

  9. python中setattr用法_python中hasattr()、getattr()、setattr()函数的使用

    引言: 在阅读源码时,有很多简写的形式,其中一个比较常用的就是getattr()用来调用一个类中的变量或者方法,相关联的hasattr().getattr().setattr()函数的使用也一并学习了 ...

最新文章

  1. spacemacs各种问题修复方法
  2. linux中光标向上调一行命令,Linux vi 中移动光标 命令
  3. 本地搭建docker私服
  4. div超出不换行_DIV元素不换行
  5. 使用docker-compose搭建AspNetCore开发环境
  6. [渝粤教育] 中国地质大学 高级会计学 复习题
  7. SQL SERVER数据类型与C#数据类型对照表
  8. HBase的RowKey设计
  9. 一文读懂C++程序的结构、执行与编译
  10. Python 43 视图 、sql注入问题 、事务 、存储过程
  11. 5分钟学会制作自动化脚本——自动化脚本辅助开发IDE——Selenium IDE介绍(测试工程师必备)
  12. python蓝牙连接测试_基于python实现蓝牙通信代码实例
  13. uboot源码中start.S里中断向量表中不直接LDR   PC ,异常地址,而是使用一个标号
  14. Mac上键入数学符号怎样输入
  15. quartz 参数说明
  16. typescript 中 public private protect 区别
  17. R语言中用于计算Rsquare的包rsq
  18. .设计一个敏感词过滤程序
  19. 【C4AI-2022】基于飞桨的井下煤流视频智能分析系统
  20. QTreeWidget 勾选三种状态

热门文章

  1. 一年换 3 份工作,在家躺平半年了!
  2. oracle数据表回收站
  3. 仿网易严选网页版html代码,flutter 仿网易严选(四)
  4. 2020年全国硕士研究生入学统一考试管理类专业学位联考数学试题——纯题目版
  5. 南邮《离散数学》2018-2019学年第一学期期末考试回忆
  6. Streamsets自定义组件开发
  7. 扬州市住房公积金管理中心应用支撑平台及异地容灾系统建设项目
  8. webpack中的HMR(热更新)原理剖析
  9. 在Windows10中安装Oracle 11g R2
  10. 基于SSM的公选课的选课系统/选课系统的设计与实现