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实现简单的web程序
Sep 11 Python
在Python中使用第三方模块的教程
Apr 27 Python
Python抽象类的新写法
Jun 18 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
django 控制页面跳转的例子
Aug 06 Python
Django实现CAS+OAuth2的方法示例
Oct 30 Python
Python列表切片常用操作实例解析
Dec 16 Python
python FTP批量下载/删除/上传实例
Dec 22 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
scrapy结合selenium解析动态页面的实现
Sep 28 Python
python更新数据库中某个字段的数据(方法详解)
Nov 18 Python
python删除csv文件的行列
Apr 06 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
世界咖啡生产者论坛呼吁:需要立即就咖啡价格采取认真行动
2021/03/06 咖啡文化
FCKeditor的安装(PHP)
2007/01/13 PHP
PHP连接access数据库
2008/03/27 PHP
PHP SPL标准库之数据结构堆(SplHeap)简单使用实例
2015/05/12 PHP
PHP Curl模拟登录微信公众平台、新浪微博实例代码
2016/01/28 PHP
php+ajax登录跳转登录实现思路
2016/07/31 PHP
jQuery读取和设定KindEditor值的方法
2013/11/22 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
2013/12/13 Javascript
jQuery实现预加载图片的方法
2015/03/17 Javascript
js实现超简单的展开、折叠目录代码
2015/08/28 Javascript
JS中parseInt()和map()用法分析
2016/12/16 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
2017/01/20 Javascript
JS实现页面打印功能
2017/03/16 Javascript
解决淘宝cnpm 安装后cnpm不是内部或外部命令的问题
2018/05/17 Javascript
angular6.0使用教程之父组件通过url传递id给子组件的方法
2018/06/30 Javascript
[02:17]《辉夜杯》TRG战队巡礼
2015/10/26 DOTA
[03:55]2016国际邀请赛中国区预选赛首日TOP10精彩集锦
2016/06/27 DOTA
[54:29]2018DOTA2亚洲邀请赛 4.7 淘汰赛 VP vs LGD 第二场
2018/04/09 DOTA
[00:59]DOTA2背景故事第二期之四大基本法则
2020/07/07 DOTA
寻找网站后台地址的python脚本
2014/09/01 Python
python 利用栈和队列模拟递归的过程
2018/05/29 Python
Python GUI Tkinter简单实现个性签名设计
2018/06/19 Python
python3.6.3安装图文教程 TensorFlow安装配置方法
2020/06/24 Python
对python中的 os.mkdir和os.mkdirs详解
2018/10/16 Python
pycharm中使用request和Pytest进行接口测试的方法
2020/07/31 Python
matplotlib bar()实现百分比堆积柱状图
2021/02/24 Python
HTML5中canvas中的beginPath()和closePath()的重要性
2018/08/24 HTML / CSS
澳大利亚二手奢侈品网站:Modsie
2019/09/23 全球购物
会计学应届毕业生推荐信
2013/11/04 职场文书
电子专业毕业生自我鉴定
2014/01/22 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
会计专业求职信范文
2015/03/19 职场文书
法律进社区活动总结
2015/05/07 职场文书
爱护环境建议书
2015/09/14 职场文书
Python Matplotlib绘制等高线图与渐变色扇形图
2022/04/14 Python