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批量导出导入MySQL用户的方法
Nov 15 Python
如何处理Python3.4 使用pymssql 乱码问题
Jan 08 Python
Python简单定义与使用字典dict的方法示例
Jul 25 Python
pygame游戏之旅 python和pygame安装教程
Nov 20 Python
python使用response.read()接收json数据的实例
Dec 19 Python
对python函数签名的方法详解
Jan 22 Python
Django之模板层的实现代码
Sep 09 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
python实现密码验证合格程序的思路详解
Jun 01 Python
python适合做数据挖掘吗
Jun 16 Python
提取视频中的音频 Python只需要三行代码!
May 10 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
DOTA2【瓜皮时刻】Vol.91 RTZ山史最惨“矿难”
2021/03/05 DOTA
PHP字符串 ==比较运算符的副作用
2009/10/21 PHP
探讨PHP中OO之静态关键字以及类常量的详解
2013/06/07 PHP
整理php防注入和XSS攻击通用过滤
2015/09/13 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
PHP 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
eclipse如何忽略js文件报错(附图)
2013/10/30 Javascript
10分钟学会写Jquery插件实例教程
2014/09/06 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
jQuery的context属性用法实例
2014/12/27 Javascript
jQuery实现元素拖拽并cookie保存顺序的方法
2016/02/20 Javascript
浏览器复制插件zeroclipboard使用指南
2016/03/26 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
node静态服务器实现静态读取文件或文件夹
2019/12/03 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
windows下安装Python和pip终极图文教程
2017/03/05 Python
Python自定义线程池实现方法分析
2018/02/07 Python
Ubuntu下Python2与Python3的共存问题
2018/10/31 Python
5分钟 Pipenv 上手指南
2018/12/20 Python
如何利用Anaconda配置简单的Python环境
2019/06/24 Python
python tkinter图形界面代码统计工具
2019/09/18 Python
Python Django框架url反向解析实现动态生成对应的url链接示例
2019/10/18 Python
基础的CSS3弹性盒Flexbox布局使用实例
2016/04/08 HTML / CSS
英国第一蛋白粉品牌:Myprotein
2016/09/14 全球购物
科颜氏法国官网:Kiehl’s法国
2019/08/20 全球购物
PHP如何调用MYSQL存储过程
2014/05/30 面试题
销售业务员岗位职责
2014/01/29 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
应届本科毕业生求职信
2014/07/23 职场文书
出资证明书范本(标准版)
2014/09/24 职场文书
销售代理协议书
2014/09/30 职场文书
万能检讨书
2015/01/27 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
搞笑欢迎词大全
2015/09/30 职场文书
vue+elementui 实现新增和修改共用一个弹框的完整代码
2021/06/08 Vue.js