详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数


Posted in Python onApril 18, 2018

hasattr()函数

hasattr()函数用于判断是否包含对应的属性

语法:

hasattr(object,name)

参数:

object--对象

name--字符串,属性名

返回值:

如果对象有该属性返回True,否则返回False

示例:

class People:
  country='China'
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print('%s is xxx' %(self.name))
obj=People('aaa')
print(hasattr(People,'country'))
#返回值:True
print('country' in People.__dict__)
#返回值:True
print(hasattr(obj,'people_info'))
#返回值:True
print(People.__dict__)
##{'__module__': '__main__', 'country': 'China', '__init__': <function People.__init__ at 0x1006d5620>, 'people_info': <function People.people_info at 0x10205d1e0>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None}

getattr()函数

描述:

getattr()函数用于返回一个对象属性值

语法:

getattr(object,name,default)

参数:

object--对象

name--字符串,对象属性

default--默认返回值,如果不提供该参数,在没有对于属性时,将触发AttributeError。

返回值:

返回对象属性值

class People:
  country='China'
  def __init__(self,name):
    self.name=name

  def people_info(self):
    print('%s is xxx' %(self.name))
obj=getattr(People,'country')
print(obj)
#返回值China
#obj=getattr(People,'countryaaaaaa')
#print(obj)
#报错
# File "/getattr()函数.py", line 32, in <module>
#   obj=getattr(People,'countryaaaaaa')
# AttributeError: type object 'People' has no attribute 'countryaaaaaa'
obj=getattr(People,'countryaaaaaa',None)
print(obj)
#返回值None

setattr()函数

描述:

setattr函数,用于设置属性值,该属性必须存在

语法:

setattr(object,name,value)

参数:

object--对象

name--字符串,对象属性

value--属性值

返回值:

class People:
  country='China'
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print('%s is xxx' %(self.name))
obj=People('aaa')
setattr(People,'x',111) #等同于People.x=111
print(People.x)
#obj.age=18
setattr(obj,'age',18)
print(obj.__dict__)
#{'name': 'aaa', 'age': 18}
print(People.__dict__)
#{'__module__': '__main__', 'country': 'China', '__init__': <function People.__init__ at 0x1007d5620>, 'people_info': <function People.people_info at 0x10215d1e0>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None, 'x': 111}

delattr()函数

描述:

delattr函数用于删除属性

delattr(x,'foobar)相当于del x.foobar

语法:

setattr(object,name)

参数:

object--对象

name--必须是对象的属性

返回值:

示例:

class People:
  country='China'
  def __init__(self,name):
    self.name=name
  def people_info(self):
    print('%s is xxx' %(self.name))
delattr(People,'country') #等同于del People.country
print(People.__dict__)
{'__module__': '__main__', '__init__': <function People.__init__ at 0x1006d5620>, 'people_info': <function People.people_info at 0x10073d1e0>, '__dict__': <attribute '__dict__' of 'People' objects>, '__weakref__': <attribute '__weakref__' of 'People' objects>, '__doc__': None}

补充示例:

class Foo:
  def run(self):
    while True:
      cmd=input('cmd>>: ').strip()
      if hasattr(self,cmd):
        func=getattr(self,cmd)
        func()
  def download(self):
    print('download....')
  def upload(self):
    print('upload...')
# obj=Foo()
# obj.run()

总结

以上所述是小编给大家介绍的详解Python3 中hasattr()、getattr()、setattr()、delattr()函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
使用70行Python代码实现一个递归下降解析器的教程
Apr 17 Python
Python中操作符重载用法分析
Apr 29 Python
Python函数式编程
Jul 20 Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
Sep 06 Python
python requests抓取one推送文字和图片代码实例
Nov 04 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Django 删除upload_to文件的步骤
Mar 30 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
解决Django Haystack全文检索为空的问题
May 19 Python
Python命令行参数定义及需要注意的地方
Nov 30 Python
Python中数组,列表:冒号的灵活用法介绍(np数组,列表倒序)
Apr 18 #Python
浅谈numpy数组中冒号和负号的含义
Apr 18 #Python
对python numpy数组中冒号的使用方法详解
Apr 17 #Python
JavaScript实现一维数组转化为二维数组
Apr 17 #Python
对python 矩阵转置transpose的实例讲解
Apr 17 #Python
Numpy中转置transpose、T和swapaxes的实例讲解
Apr 17 #Python
解读python logging模块的使用方法
Apr 17 #Python
You might like
PHP SEO优化之URL优化方法
2011/04/21 PHP
基于PHP对XML的操作详解
2013/06/07 PHP
zf框架db类的分页示例分享
2014/03/14 PHP
PHP读取XML格式文件的方法总结
2017/02/27 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php进程daemon化的正确实现方法
2018/09/06 PHP
对php 判断http还是https,以及获得当前url的方法详解
2019/01/15 PHP
Thinkphp 框架扩展之驱动扩展实例分析
2020/04/27 PHP
Mootools 1.2教程 设置和获取样式表属性
2009/09/15 Javascript
javascript模拟select,jselect的方法实现
2012/11/08 Javascript
JS实现QQ图片一闪一闪的效果小例子
2013/07/31 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
2015/06/10 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
Jquery实现仿京东商城省市联动菜单
2015/11/19 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue中实现Monaco Editor自定义提示功能
2019/07/05 Javascript
React传值 组件传值 之间的关系详解
2019/08/26 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
Python二叉树的定义及常用遍历算法分析
2017/11/24 Python
python实现爬虫抓取小说功能示例【抓取金庸小说】
2019/08/09 Python
django2.2安装错误最全的解决方案(小结)
2019/09/24 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
AmazeUI中模态框的实现
2020/08/19 HTML / CSS
匡威比利时官网:Converse Belgium
2017/04/13 全球购物
英国排名第一的LED灯泡网站:LED Bulbs
2019/09/03 全球购物
PHP如何自定义函数
2016/09/16 面试题
实习自我鉴定模板
2013/09/28 职场文书
校园安全广播稿
2014/02/08 职场文书
《记承天寺夜游》教学反思
2014/02/16 职场文书
消防标语大全
2014/06/07 职场文书
党校学习个人总结
2015/02/15 职场文书
2022新作动画《福星小子》释出宣传影片 加入内田真礼&宫野真守配音演出
2022/04/08 日漫