全面了解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 根据pid杀死相应进程的方法
Jan 16 Python
深入理解Python中range和xrange的区别
Nov 26 Python
Python Paramiko模块的使用实际案例
Feb 01 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
Python使用progressbar模块实现的显示进度条功能
May 31 Python
详解python算法之冒泡排序
Mar 05 Python
梅尔倒谱系数(MFCC)实现
Jun 19 Python
python实现简单日志记录库glog的使用
Dec 13 Python
Python语言异常处理测试过程解析
Jan 08 Python
Python eval函数原理及用法解析
Nov 14 Python
判断Python中的Nonetype类型
May 25 Python
python非标准时间的转换
Jul 25 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中time()和mktime()方法的区别
2013/09/28 PHP
php操作mysqli(示例代码)
2013/10/28 PHP
php字符编码转换之gb2312转为utf8
2013/10/28 PHP
PHP中使用FFMPEG获取视频缩略图和视频总时长实例
2014/05/04 PHP
PHP7多线程搭建教程
2017/04/21 PHP
PHP Primary script unknown 解决方法总结
2019/08/22 PHP
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
无缝滚动js代码通俗易懂(自写)
2013/06/19 Javascript
JS动态调用方法名示例介绍
2013/12/18 Javascript
JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解
2015/12/14 Javascript
Bootstrap基本组件学习笔记之下拉菜单(7)
2016/12/07 Javascript
Vue数据驱动模拟实现1
2017/01/11 Javascript
AngularJS Toaster使用详解
2017/02/24 Javascript
AngularJS实现页面跳转后自动弹出对话框实例代码
2017/08/02 Javascript
JavaScript Date对象应用实例分享
2017/10/30 Javascript
react-native android状态栏的实现
2018/06/15 Javascript
在vue中v-bind使用三目运算符绑定class的实例
2018/09/29 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
在vue项目中promise解决回调地狱和并发请求的问题
2020/11/09 Javascript
Vue.js桌面端自定义滚动条组件之美化滚动条VScroll
2020/12/01 Vue.js
六行python代码的爱心曲线详解
2019/05/17 Python
详解Python odoo中嵌入html简单的分页功能
2019/05/29 Python
Django 模型类(models.py)的定义详解
2019/07/19 Python
详解Django配置JWT认证方式
2020/05/09 Python
django 模型中的计算字段实例
2020/05/19 Python
解决tensorflow/keras时出现数组维度不匹配问题
2020/06/29 Python
英国票务网站:Ticketmaster英国
2018/08/27 全球购物
Optimalprint加拿大:在线打印服务
2020/04/03 全球购物
Farfetch澳大利亚官网:Farfetch Australia
2020/04/26 全球购物
成龙洗发水广告词
2014/03/14 职场文书
企业承诺书怎么写
2014/05/24 职场文书
禁止高声喧哗的标语
2014/06/11 职场文书
倡议书的格式写法
2015/04/28 职场文书
MySQL主从复制断开的常用修复方法
2021/04/07 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js