详解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提取html文件中的特定数据的实现代码
Mar 24 Python
python实现自动重启本程序的方法
Jul 09 Python
Python中http请求方法库汇总
Jan 06 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
python中利用xml.dom模块解析xml的方法教程
May 24 Python
python实现五子棋游戏
Jun 18 Python
Python 实现还原已撤回的微信消息
Jun 18 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
Django文件上传与下载(FileFlid)
Oct 06 Python
python设置环境变量的作用整理
Feb 17 Python
pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
Apr 24 Python
python PyAUtoGUI库实现自动化控制鼠标键盘
Sep 09 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
从Web查询数据库之PHP与MySQL篇
2009/09/25 PHP
PHP程序级守护进程的实现与优化的使用概述
2013/05/02 PHP
thinkphp中html:list标签传递多个参数实例
2014/10/30 PHP
PHP处理Oracle的CLOB实例
2014/11/03 PHP
php函数与传递参数实例分析
2014/11/15 PHP
php根据某字段对多维数组进行排序的方法
2015/03/07 PHP
PHP7如何开启Opcode打造强悍性能详解
2018/05/11 PHP
JS去除字符串的空格增强版(可以去除中间的空格)
2009/08/26 Javascript
JS 日期验证正则附asp日期格式化函数
2009/09/11 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
jquery选择器原理介绍($()使用方法)
2014/03/25 Javascript
让IE8浏览器支持function.bind()方法
2014/10/16 Javascript
jQuery判断指定id的对象是否存在的方法
2015/05/22 Javascript
js操作table元素实现表格行列新增、删除技巧总结
2015/11/18 Javascript
全面了解javascript中的错误处理机制
2016/07/18 Javascript
jQuery实现的小图列表,大图展示效果幻灯片示例
2016/10/25 Javascript
JS实现PC手机端和嵌入式滑动拼图验证码三种效果
2017/02/15 Javascript
JS中showModalDialog关闭子窗口刷新主窗口用法详解
2017/03/25 Javascript
Vue.extend构造器的详解
2017/07/17 Javascript
python批量修改文件名的实现代码
2014/09/01 Python
详解Django之auth模块(用户认证)
2018/04/17 Python
解决PySide+Python子线程更新UI线程的问题
2019/01/11 Python
Django分页功能的实现代码详解
2019/07/29 Python
跨域修改iframe页面内容详解
2019/10/31 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
新西兰领先的鞋类和靴子网上商城:Merchant 1948
2017/09/08 全球购物
Europcar澳大利亚官网:全球汽车租赁领域的领导者
2019/03/24 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
艺术设计专业个人求职信
2014/04/10 职场文书
健康家庭事迹材料
2014/05/02 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
协议书格式模板
2016/03/24 职场文书
2016年艾滋病宣传活动总结
2016/04/01 职场文书
Python实现归一化算法详情
2022/03/18 Python