详解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 相关文章推荐
python实现在控制台输入密码不显示的方法
Jul 02 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
Python绘制七段数码管实例代码
Dec 20 Python
Python flask框架post接口调用示例
Jul 03 Python
django做form表单的数据验证过程详解
Jul 26 Python
Python学习笔记之lambda表达式用法详解
Aug 08 Python
手动安装python3.6的操作过程详解
Jan 13 Python
Python django框架开发发布会签到系统(web开发)
Feb 12 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
python新式类和经典类的区别实例分析
Mar 23 Python
详解pytorch tensor和ndarray转换相关总结
Sep 03 Python
Python机器学习实战之k-近邻算法的实现
Nov 27 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中计算字符串相似度的函数代码
2012/12/29 PHP
PHP获取真实客户端的真实IP
2017/03/07 PHP
PHP用continue跳过本次循环中剩余代码的注意点
2017/06/27 PHP
PHP面向对象五大原则之开放-封闭原则(OCP)详解
2018/04/04 PHP
javascript学习笔记(十五) js间歇调用和超时调用
2012/06/20 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuey将序列化对象在前台显示地实现代码(方法总结)
2016/12/13 Javascript
javascript回调函数的概念理解与用法分析
2017/05/27 Javascript
JS FormData上传文件的设置方法
2017/07/05 Javascript
Vue.js数据绑定之data属性
2017/07/07 Javascript
微信小程序自定义组件
2017/08/16 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
关于JSON解析的实现过程解析
2019/10/08 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
js禁止查看源文件屏蔽Ctrl+u/s、F12、右键等兼容IE火狐chrome
2020/10/01 Javascript
Vue实现一种简单的无限循环滚动动画的示例
2021/01/10 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
2021/02/07 Vue.js
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
python正则表达式修复网站文章字体不统一的解决方法
2013/02/21 Python
Python 创建子进程模块subprocess详解
2015/04/08 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
python游戏开发的五个案例分享
2020/03/09 Python
python 中不同包 类 方法 之间的调用详解
2020/03/09 Python
SCDKey德国:全球领先的数字游戏市场
2019/04/09 全球购物
Java语言的优势
2015/01/10 面试题
学期自我鉴定
2013/11/04 职场文书
求职推荐信范文
2013/12/01 职场文书
《秋姑娘的信》教学反思
2014/02/28 职场文书
关于读书的演讲稿600字
2014/08/27 职场文书
群众路线教育党员自我剖析材料
2014/10/06 职场文书
2014年最新版离婚协议书范本
2014/11/25 职场文书
工商局个人工作总结
2015/03/03 职场文书
2016年禁毒宣传活动总结
2016/04/05 职场文书
基于PyTorch实现一个简单的CNN图像分类器
2021/05/29 Python
HTML基本元素标签介绍
2022/02/28 HTML / CSS