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 相关文章推荐
Windows下实现Python2和Python3两个版共存的方法
Jun 12 Python
python删除列表内容
Aug 04 Python
详解python中字典的循环遍历的两种方式
Feb 07 Python
Python列表list排列组合操作示例
Dec 18 Python
python实现维吉尼亚算法
Mar 20 Python
python利用7z批量解压rar的实现
Aug 07 Python
Python银行系统实战源码
Oct 25 Python
Python 过滤错误log并导出的实例
Dec 26 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
python输出数学符号实例
May 11 Python
python语言是免费还是收费的?
Jun 15 Python
Python爬虫基础之简单说一下scrapy的框架结构
Jun 26 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中全面阻止SQL注入式攻击分析小结
2012/01/30 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
php截取html字符串及自动补全html标签的方法
2015/01/15 PHP
php实现的顺序线性表示例
2019/05/04 PHP
php提供实现反射的方法和实例代码
2019/09/17 PHP
JQuery中关于jquery.js与jquery.min.js的比较探讨
2013/05/15 Javascript
使用Chrome调试JavaScript的断点设置和调试技巧
2014/12/16 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
Bootstrap前端开发案例二
2016/06/17 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
vue中组件的过渡动画及实现代码
2018/11/21 Javascript
微信小程序如何获取群聊的openGid以及名称详解
2019/07/17 Javascript
npx create-react-app xxx创建项目报错的解决办法
2020/02/17 Javascript
vue-router 路由传参用法实例分析
2020/03/06 Javascript
JQuery通过键盘控制键盘按下与松开触发事件
2020/08/07 jQuery
Vue toFixed保留两位小数的3种方式
2020/10/23 Javascript
[03:34]2014DOTA2西雅图国际邀请赛 淘汰赛7月15日TOPPLAY
2014/07/15 DOTA
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
python 2.6.6升级到python 2.7.x版本的方法
2016/10/09 Python
Pyqt实现无边框窗口拖动以及窗口大小改变
2018/04/19 Python
Python3中bytes类型转换为str类型
2018/09/27 Python
Python3 执行Linux Bash命令的方法
2019/07/12 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
Pyorch之numpy与torch之间相互转换方式
2019/12/31 Python
Python requests获取网页常用方法解析
2020/02/20 Python
python 星号(*)的多种用途
2020/09/21 Python
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
下列程序在32位linux或unix中的结果是什么
2015/01/26 面试题
班班通项目实施方案
2014/02/25 职场文书
物业经理自我鉴定
2014/03/03 职场文书
公共场所禁烟标语
2014/06/25 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
优秀团员自我评价
2015/03/10 职场文书