全面了解Python的getattr(),setattr(),delattr(),hasattr()


Posted in Python onJune 14, 2016

1. getattr()函数是Python自省的核心函数,具体使用大体如下:

class A: 
def __init__(self): 
self.name = 'zhangjing' 
#self.age='24'
def method(self): 
print"method print" 
 
Instance = A() 
print getattr(Instance , 'name, 'not find') #如果Instance 对象中有属性name则打印self.name的值,否则打印'not find'
print getattr(Instance , 'age', 'not find') #如果Instance 对象中有属性age则打印self.age的值,否则打印'not find'
print getattr(a, 'method', 'default') #如果有方法method,否则打印其地址,否则打印default 
print getattr(a, 'method', 'default')() #如果有方法method,运行函数并打印None否则打印default

2. hasattr(object, name)

说明:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect, name)是否抛出异常来实现的)

3. setattr(object, name, value)

这是相对应的getattr()。参数是一个对象,一个字符串和一个任意值。字符串可能会列出一个现有的属性或一个新的属性。这个函数将值赋给属性的。该对象允许它提供。例如,setattr(x,“foobar”,123)相当于x.foobar = 123。

4. delattr(object, name)

与setattr()相关的一组函数。参数是由一个对象(记住python中一切皆是对象)和一个字符串组成的。string参数必须是对象属性名之一。该函数删除该obj的一个由string指定的属性。delattr(x, 'foobar')=del x.foobar

以上这篇浅谈Python的getattr(),setattr(),delattr(),hasattr()就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python打开url并按指定块读取网页内容的方法
Apr 29 Python
深入浅析ImageMagick命令执行漏洞
Oct 11 Python
Python日期的加减等操作的示例
Aug 15 Python
python多进程实现进程间通信实例
Nov 24 Python
PyQt5每天必学之创建窗口居中效果
Apr 19 Python
Python3常用内置方法代码实例
Nov 18 Python
python如何实现单链表的反转
Feb 10 Python
Django ValuesQuerySet转json方式
Mar 16 Python
Python文件操作及内置函数flush原理解析
Oct 13 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
Dec 14 Python
python生成随机数、随机字符、随机字符串
Apr 06 Python
pytorch Dropout过拟合的操作
May 27 Python
浅谈python中的getattr函数 hasattr函数
Jun 14 #Python
深入解析Python中的线程同步方法
Jun 14 #Python
详解Python中的Descriptor描述符类
Jun 14 #Python
浅析Python中的getattr(),setattr(),delattr(),hasattr()
Jun 14 #Python
Python中getattr函数和hasattr函数作用详解
Jun 14 #Python
Python模块包中__init__.py文件功能分析
Jun 14 #Python
Python计算字符宽度的方法
Jun 14 #Python
You might like
PHP实现将textarea的值根据回车换行拆分至数组
2015/06/10 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
PHP导入导出Excel代码
2015/07/07 PHP
PHP构造函数与析构函数用法示例
2016/09/28 PHP
PHP echo()函数讲解
2019/02/15 PHP
Apache站点配置SSL强制跳转443
2021/03/09 Servers
javascript动画效果类封装代码
2007/08/28 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
Javascript 跨域知识详细介绍
2016/10/30 Javascript
javascript中的深复制详解及实例分析
2016/12/29 Javascript
angularjs实现下拉列表的选中事件示例
2017/03/03 Javascript
vue.js实现刷新当前页面的方法教程
2017/07/05 Javascript
微信小程序 转发功能的实现
2017/08/04 Javascript
vue.js-div滚动条隐藏但有滚动效果的实现方法
2018/03/03 Javascript
JavaScript类的继承方法小结【组合继承分析】
2018/07/11 Javascript
JS添加或删除HTML dom元素的方法实例分析
2019/03/05 Javascript
微信小程序实现转盘抽奖
2020/09/21 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
Python中列表和元组的使用方法和区别详解
2020/12/30 Python
python matplotlib坐标轴设置的方法
2017/12/05 Python
Python3.5模块的定义、导入、优化操作图文详解
2019/04/27 Python
Python整数对象实现原理详解
2019/07/01 Python
使用 tf.nn.dynamic_rnn 展开时间维度方式
2020/01/21 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python pexpect模块及shell脚本except原理解析
2020/08/03 Python
详解python变量与数据类型
2020/08/25 Python
Django模型验证器介绍与源码分析
2020/09/08 Python
使用scrapy ImagesPipeline爬取图片资源的示例代码
2020/09/28 Python
python re.match()用法相关示例
2021/01/27 Python
前端canvas动画如何转成mp4视频的方法
2019/06/17 HTML / CSS
销售经理竞聘书
2014/03/31 职场文书
青年标兵事迹材料
2014/08/16 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android
HTML基础详解(上)
2021/10/16 HTML / CSS