Python使用内置函数setattr设置对象的属性值


Posted in Python onOctober 16, 2020

英文文档:

setattr(object, name, value)

This is the counterpart of getattr(). The arguments are an object, a string and an arbitrary value. The string may name an existing attribute or a new attribute. The function assigns the value to the attribute, provided the object allows it. For example, setattr(x, 'foobar', 123) is equivalent to x.foobar = 123

设置对象的属性值

说明:

1. setattr函数和getattr函数是对应的。一个设置对象的属性值,一个获取对象属性值。

2. 函数有3个参数,功能是对参数object对象,设置名为name的属性的属性值为value值。

>>> class Student:
  def __init__(self,name):
    self.name = name

    
>>> a = Student('Kim')
>>> a.name
'Kim'
>>> setattr(a,'name','Bob')
>>> a.name
'Bob'

3. name属性可以是object对象的一个已经存在的属性,存在的话就会更新其属性值;如果name属性不存在,则对象将创建name名称的属性值,并存储value值。等效于调用object.name = value。

>>> a.age # 不存在age属性
Traceback (most recent call last):
 File "<pyshell#20>", line 1, in <module>
  a.age
AttributeError: 'Student' object has no attribute 'age'

>>> setattr(a,'age',10) # 执行后 创建 age属性
>>> a.age # 存在age属性了
10
>>> a.age = 12 # 等效于调用object.name
>>> a.age
12

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python Deque 模块使用详解
Jul 04 Python
Python遍历zip文件输出名称时出现乱码问题的解决方法
Apr 08 Python
Python中运算符&quot;==&quot;和&quot;is&quot;的详解
Oct 08 Python
Python列表切片用法示例
Apr 19 Python
使用Python对Csv文件操作实例代码
May 12 Python
利用标准库fractions模块让Python支持分数类型的方法详解
Aug 11 Python
浅谈python中的正则表达式(re模块)
Oct 17 Python
python分治法求二维数组局部峰值方法
Apr 03 Python
Python闭包函数定义与用法分析
Jul 20 Python
利用python实现逐步回归
Feb 24 Python
如何在django中运行scrapy框架
Apr 22 Python
宝塔面板成功部署Django项目流程(图文)
Jun 22 Python
python pymysql库的常用操作
Oct 16 #Python
Python基于callable函数检测对象是否可被调用
Oct 16 #Python
python collections模块的使用
Oct 16 #Python
python 如何使用find和find_all爬虫、找文本的实现
Oct 16 #Python
Django实现随机图形验证码的示例
Oct 15 #Python
如何使用Python自动生成报表并以邮件发送
Oct 15 #Python
如何在Win10系统使用Python3连接Hive
Oct 15 #Python
You might like
PHP echo,print,printf,sprintf函数之间的区别与用法详解
2013/11/27 PHP
详解Javascript动态操作CSS
2014/12/08 Javascript
js为什么不能正确处理小数运算?
2015/12/29 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
AngularJS 中的Promise --- $q服务详解
2016/09/14 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
javascript trie前缀树的示例
2018/01/29 Javascript
JavaScript实现美化滑块效果
2019/05/17 Javascript
基于JS判断对象是否是数组
2020/01/10 Javascript
javascript如何使用函数random来实现课堂随机点名方法详解
2020/07/28 Javascript
[56:13]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第一场 1月10日
2021/03/11 DOTA
python中常用的各种数据库操作模块和连接实例
2014/05/29 Python
python控制台中实现进度条功能
2015/11/10 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
使用pycharm设置控制台不换行的操作方法
2019/01/19 Python
对Python3 goto 语句的使用方法详解
2019/02/16 Python
Python爬虫实现验证码登录代码实例
2019/05/10 Python
Django中间件拦截未登录url实例详解
2019/09/03 Python
python爬虫如何解决图片验证码
2021/02/14 Python
CSS3实现时间轴特效
2020/11/02 HTML / CSS
解析HTML5中的新功能本地存储localStorage
2016/03/01 HTML / CSS
美国老牌主机服务商:iPage
2016/07/22 全球购物
TecoBuy澳大利亚:在线电子和小工具商店
2020/06/25 全球购物
局域网标准
2016/09/10 面试题
护士自荐信怎么写
2013/10/18 职场文书
学校经典推荐信
2013/10/30 职场文书
党的群众路线教育实践活动个人对照检查剖析材料
2014/09/23 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
律师函格式范本
2015/05/27 职场文书
小学运动会通讯稿
2015/07/18 职场文书
Redis5之后版本的高可用集群搭建的实现
2021/04/27 Redis
如何使用Python实现一个简易的ORM模型
2021/05/12 Python
MySQL 如何限制一张表的记录数
2021/09/14 MySQL