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 25 Python
Python列表(list)、字典(dict)、字符串(string)基本操作小结
Nov 28 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
Python安装lz4-0.10.1遇到的坑
May 20 Python
设置python3为默认python的方法
Oct 31 Python
python合并已经存在的sheet数据到新sheet的方法
Dec 11 Python
Python实现将通信达.day文件读取为DataFrame
Dec 22 Python
python 随机森林算法及其优化详解
Jul 11 Python
Python3批量移动指定文件到指定文件夹方法示例
Sep 02 Python
python 实现屏幕录制示例
Dec 23 Python
浅谈Python3实现两个矩形的交并比(IoU)
Jan 18 Python
Django 设置多环境配置文件载入问题
Feb 25 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实现图片裁剪、添加水印效果代码
2014/10/01 PHP
PHP实现上传文件并存进数据库的方法
2015/07/16 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
YII2框架中添加自定义模块的方法实例分析
2020/03/18 PHP
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
一个轻量级的javascript库 pj介绍
2010/12/19 Javascript
无缝滚动改进版支持上下左右滚动(封装成函数)
2012/12/04 Javascript
让元素在网页中可拖动示例代码
2013/08/13 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
鼠标移到div,浮层显示明细,弹出层与div的上边距左边距重合(示例代码)
2013/12/14 Javascript
JavaScript编程的单例设计模讲解
2015/11/10 Javascript
Easyui Treegrid改变默认图标的方法
2016/04/29 Javascript
JQuery和PHP结合实现动态进度条上传显示
2016/11/23 Javascript
详解PHP中pathinfo()函数导致的安全问题
2017/01/05 Javascript
详解JS异步加载的三种方式
2017/03/07 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
node.js+jQuery实现用户登录注册AJAX交互
2017/04/28 jQuery
微信小程序用户自定义模版用法实例分析
2017/11/28 Javascript
jquery 实现拖动文件上传加载进度条功能
2018/03/18 jQuery
详解vue axios用post提交的数据格式
2018/08/07 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
2020/11/27 Vue.js
动态创建类实例代码
2009/10/07 Python
Python的socket模块源码中的一些实现要点分析
2016/06/06 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
python之随机数函数的实现示例
2020/12/30 Python
python多线程爬取西刺代理的示例代码
2021/01/30 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
html5调用app分享功能示例(WebViewJavascriptBridge)
2018/03/21 HTML / CSS
德国家具在线:Fashion For Home
2017/03/11 全球购物
Java提供了哪些企业应用编程接口
2015/02/13 面试题
实习护士自我鉴定
2013/10/13 职场文书
简历里的自我评价
2014/01/31 职场文书
社区服务活动总结
2014/05/07 职场文书
Python 中 Shutil 模块详情
2021/11/11 Python
Python实现视频中添加音频工具详解
2021/12/06 Python