全面了解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与js)两种实现
Feb 21 Python
python文件和目录操作函数小结
Jul 11 Python
跟老齐学Python之有容乃大的list(3)
Sep 15 Python
python 美化输出信息的实例
Oct 15 Python
IntelliJ IDEA安装运行python插件方法
Dec 10 Python
Python3.5实现的罗马数字转换成整数功能示例
Feb 25 Python
python实现远程控制电脑
May 23 Python
Python3实现定时任务的四种方式
Jun 03 Python
python输入错误后删除的方法
Oct 12 Python
django实现用户注册实例讲解
Oct 30 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 Python
python基于socket模拟实现ssh远程执行命令
Dec 05 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中邮箱地址正则表达式实现与详解
2012/04/24 PHP
PHP函数学习之PHP函数点评
2012/07/05 PHP
php出现web系统多域名登录失败的解决方法
2014/09/30 PHP
php编写的抽奖程序中奖概率算法
2015/05/14 PHP
PHP中余数、取余的妙用
2015/06/29 PHP
PHP的几个常用加密函数
2016/02/03 PHP
在Laravel5.6中使用Swoole的协程数据库查询
2018/06/15 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
javascript 伪数组实现方法
2010/10/11 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
javascript实现信息的显示和隐藏如注册页面
2013/12/03 Javascript
Egret引擎开发指南之运行项目
2014/09/03 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
求js数组的最大值和最小值的四种方法
2017/03/03 Javascript
JS之if语句对接事件动作逻辑(详解)
2017/06/28 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
Vue2.0 多 Tab切换组件的封装实例
2017/07/28 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
微信公众号H5支付接口调用方法
2019/01/10 Javascript
微信小程序学习总结(四)事件与冒泡实例分析
2020/06/04 Javascript
Python cookbook(数据结构与算法)保存最后N个元素的方法
2018/02/13 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
tensorflow 中对数组元素的操作方法
2018/07/27 Python
详解python做UI界面的方法
2019/02/27 Python
基于python实现的百度新歌榜、热歌榜下载器(附代码)
2019/08/05 Python
用Python开发app后端有优势吗
2020/06/29 Python
python抢购软件/插件/脚本附完整源码
2021/03/04 Python
AmazeUI框架搭建的方法步骤(图文)
2020/08/17 HTML / CSS
给定一个时间点,希望得到其他时间点
2013/11/07 面试题
2014年高三毕业生自我评价
2014/01/11 职场文书
运动会跳远广播稿5篇
2014/09/17 职场文书
党员检讨书范文
2014/12/27 职场文书
小公司融资,商业计划书的8切记
2019/07/15 职场文书
golang中字符串MD5生成方式总结
2021/07/04 Golang
MySql数据库触发器使用教程
2022/06/01 MySQL