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脚本
Apr 05 Python
python flask中静态文件的管理方法
Mar 20 Python
通过Py2exe将自己的python程序打包成.exe/.app的方法
May 26 Python
对python:print打印时加u的含义详解
Dec 15 Python
Python中format()格式输出全解
Apr 12 Python
python多线程案例之多任务copy文件完整实例
Oct 29 Python
Python 读取 YUV(NV12) 视频文件实例
Dec 09 Python
Python如何使用队列方式实现多线程爬虫
May 12 Python
python使用多线程+socket实现端口扫描
May 28 Python
python如何实时获取tcpdump输出
Sep 16 Python
互斥锁解决 Python 中多线程共享全局变量的问题(推荐)
Sep 28 Python
Python-openpyxl表格读取写入的案例详解
Nov 02 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
用IE远程创建Mysql数据库的简易程序
2006/10/09 PHP
一些使用频率比较高的php函数
2008/10/03 PHP
PHP计算加权平均数的方法
2015/07/16 PHP
在WordPress的后台中添加顶级菜单和子菜单的函数详解
2016/01/11 PHP
PHP使用Curl实现模拟登录及抓取数据功能示例
2018/04/27 PHP
PHP实现的curl批量请求操作示例
2018/06/06 PHP
PHP基于timestamp和nonce实现的防止重放攻击方案分析
2019/07/26 PHP
扩展Jquery插件处理mouseover时内部有子元素时发生样式闪烁
2011/12/08 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
利用了jquery的ajax实现二级联互动菜单
2013/12/02 Javascript
jQuery统计上传文件大小的方法
2015/01/24 Javascript
javascript中键盘事件用法实例分析
2015/01/30 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
2015/07/17 Javascript
jquery获取img的src值的简单实例
2016/05/17 Javascript
Jquery对新插入的节点 绑定Click事件失效的解决方法
2016/06/02 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
React.js中常用的ES6写法总结(推荐)
2017/05/09 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
Vue Router的手写实现方法实现
2020/03/02 Javascript
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
浅谈Python爬虫基本套路
2019/03/25 Python
为什么从Python 3.6开始字典有序并效率更高
2019/07/15 Python
Python 实现的 Google 批量翻译功能
2019/08/26 Python
Python数学形态学实例分析
2019/09/06 Python
PyCharm 2019.3发布增加了新功能一览
2019/12/08 Python
python Popen 获取输出,等待运行完成示例
2019/12/30 Python
Python&amp;&amp;GDAL实现NDVI的计算方式
2020/01/09 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
使用keras2.0 将Merge层改为函数式
2020/05/23 Python
Python sqlalchemy时间戳及密码管理实现代码详解
2020/08/01 Python
英国国家美术馆商店:National Gallery
2019/05/01 全球购物
蜗居观后感
2015/06/11 职场文书
教师反邪教心得体会
2016/01/15 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python
一文搞懂PHP中的抽象类和接口
2022/05/25 PHP