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实现斐波那契递归函数的方法
Sep 08 Python
Ruby元编程基础学习笔记整理
Jul 02 Python
详解tensorflow训练自己的数据集实现CNN图像分类
Feb 07 Python
pandas 两列时间相减换算为秒的方法
Apr 20 Python
基于OpenCV python3实现证件照换背景的方法
Mar 22 Python
django框架使用orm实现批量更新数据的方法
Jun 21 Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 Python
Python底层封装实现方法详解
Jan 22 Python
python matplotlib:plt.scatter() 大小和颜色参数详解
Apr 14 Python
Python 必须了解的5种高级特征
Sep 10 Python
Scrapy-Redis之RedisSpider与RedisCrawlSpider详解
Nov 18 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
May 30 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
在字符串中把网址改成超级链接
2006/10/09 PHP
php实现从ftp服务器上下载文件树到本地电脑的程序
2009/02/10 PHP
php分页思路以及在ZF中的使用
2012/05/30 PHP
浅析PHP程序设计中的MVC编程思想
2014/07/28 PHP
php实现的SESSION类
2014/12/02 PHP
PHP读取并输出XML文件数据的简单实现方法
2017/12/22 PHP
基于MooTools的很有创意的滚动条时钟动画
2010/11/14 Javascript
解析JavaScript中的不可见数据类型
2013/12/02 Javascript
JS简单操作select和dropdownlist实例
2014/11/26 Javascript
jQuery中的jQuery()方法用法分析
2014/12/27 Javascript
jquery append 动态添加的元素事件on 不起作用的解决方案
2015/07/30 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
BootStrap中Tab页签切换实例代码
2016/05/30 Javascript
jQuery实现模拟flash头像裁切上传功能示例
2016/12/11 Javascript
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
javascript设计模式 ? 组合模式原理与应用实例分析
2020/04/14 Javascript
[33:19]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第一场 11.26
2020/11/30 DOTA
Django集成百度富文本编辑器uEditor攻略
2014/07/04 Python
Windows下PyMongo下载及安装教程
2015/04/27 Python
python实现备份目录的方法
2015/08/03 Python
Python中使用Queue和Condition进行线程同步的方法
2016/01/19 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
python zip()函数使用方法解析
2019/10/31 Python
pytorch:model.train和model.eval用法及区别详解
2020/02/20 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
人力资源专业推荐信
2013/11/29 职场文书
雷锋精神演讲稿
2014/05/13 职场文书
教师工作失职检讨书
2014/09/18 职场文书
普通党员个人整改措施
2014/10/27 职场文书
运动会加油稿30字
2015/07/21 职场文书
golang 实现Location跳转方式
2021/05/02 Golang
JavaScript的Set数据结构详解
2022/02/18 Javascript