全面了解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爬虫之正则表达式
Feb 17 Python
浅析Python函数式编程
Oct 06 Python
详解Django-restframework 之频率源码分析
Feb 27 Python
Python实现定时执行任务的三种方式简单示例
Mar 30 Python
python 实现识别图片上的数字
Jul 30 Python
python利用7z批量解压rar的实现
Aug 07 Python
在 Python 中接管键盘中断信号的实现方法
Feb 04 Python
python 给图像添加透明度(alpha通道)
Apr 09 Python
python使用Thread的setDaemon启动后台线程教程
Apr 25 Python
Win10用vscode打开anaconda环境中的python出错问题的解决
May 25 Python
Python爬虫如何应对Cloudflare邮箱加密
Jun 24 Python
python 实现mysql自动增删分区的方法
Apr 01 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
fleaphp下不确定的多条件查询的巧妙解决方法
2008/09/11 PHP
php 获取本地IP代码
2013/06/23 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
简单介绍PHP的责任链编程模式
2015/08/11 PHP
php中时间函数date及常用的时间计算
2017/05/12 PHP
利用jQuery操作对象数组的实现代码
2011/04/27 Javascript
dojo学习第一天 Tab选项卡 实现
2011/08/28 Javascript
html的DOM中document对象images集合用法实例
2015/01/21 Javascript
自定义jQuery插件方式实现强制对象重绘的方法
2015/03/23 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
详解JavaScript for循环中发送AJAX请求问题
2020/06/23 Javascript
JavaScript中setter和getter方法介绍
2016/07/11 Javascript
老生常谈Javascript中的原型和this指针
2016/10/09 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
2016/11/17 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
Bootstrap导航条的使用和理解3
2016/12/14 Javascript
Vue.js实现图片的随意拖动方法
2018/03/08 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
vue 解除鼠标的监听事件的方法
2019/11/13 Javascript
微信小程序swiper使用网络图片不显示问题解决
2019/12/13 Javascript
python requests.post带head和body的实例
2019/01/02 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
Python实现微信好友的数据分析
2019/12/16 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
瑞贝卡·明可弗包包官网:Rebecca Minkoff
2016/07/21 全球购物
资料员岗位职责
2013/11/17 职场文书
自主招生自荐信范文
2013/12/04 职场文书
演讲稿开场白
2014/01/13 职场文书
监督检查工作方案
2014/05/28 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
个人汇报材料范文
2014/12/30 职场文书
租赁协议书
2015/01/27 职场文书
技术转让协议书
2016/03/19 职场文书
诺贝尔奖获得者名言100句:句句启人心智,值永久收藏
2019/08/09 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers
python神经网络 使用Keras构建RNN训练
2022/05/04 Python