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命令行参数解析OptionParser类用法实例
Oct 09 Python
自己使用总结Python程序代码片段
Jun 02 Python
在Python的Flask框架中构建Web表单的教程
Jun 04 Python
浅谈Python 对象内存占用
Jul 15 Python
Python视频爬虫实现下载头条视频功能示例
May 07 Python
在python 中实现运行多条shell命令
Jan 07 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
Python3使用xml.dom.minidom和xml.etree模块儿解析xml文件封装函数的方法
Sep 23 Python
python实现opencv+scoket网络实时图传
Mar 20 Python
Django框架获取form表单数据方式总结
Apr 22 Python
Python web如何在IIS发布应用过程解析
May 27 Python
python批量提取图片信息并保存的实现
Feb 05 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
绿山咖啡和蓝山咖啡
2021/03/04 新手入门
php基础知识:控制结构
2006/12/13 PHP
通过PHP修改Linux或Unix口令的方法分享
2012/01/30 PHP
PHP中使用Imagick实现各种图片效果实例
2015/01/21 PHP
Thinkphp关闭缓存的方法
2015/06/26 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP去掉json字符串中的反斜杠\及去掉双引号前的反斜杠
2015/09/30 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
PHP实现的杨辉三角求解算法分析
2019/03/11 PHP
第七章之菜单按钮图标组件
2016/04/25 Javascript
仅一个form表单 js实现注册信息依次填写提交功能
2016/06/12 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
javascript动画之磁性吸附效果篇
2016/12/09 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
记React connect的几种写法(小结)
2018/09/18 Javascript
详解Vue2.0组件的继承与扩展
2018/11/23 Javascript
微信小程序自定义波浪组件使用方法详解
2019/09/21 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
python合并同类型excel表格的方法
2018/04/01 Python
tensorflow学习教程之文本分类详析
2018/08/07 Python
python使用mitmproxy抓取浏览器请求的方法
2019/07/02 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
PyCharm 2020.2.2 x64 下载并安装的详细教程
2020/10/15 Python
StubHub意大利:购买和出售全球演唱会和体育赛事门票
2017/11/21 全球购物
澳大利亚相机之家:Camera House
2017/11/30 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
公司活动邀请函
2014/01/24 职场文书
文秘个人求职信范文
2014/04/22 职场文书
初三学习计划书范文
2014/04/30 职场文书
大学新生军训方案
2014/05/03 职场文书
我们的节日国庆活动方案
2014/08/19 职场文书
“5.12”护士节主持词
2015/07/04 职场文书
springboot+WebMagic+MyBatis爬虫框架的使用
2021/08/07 Java/Android
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
【海涛dota】偶遇拉娜娅 质量局德鲁伊第一视角解说
2022/04/01 DOTA
Ruby处理YAML和json数据
2022/04/18 Ruby