详解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编程实现双击更新所有已安装python模块的方法
Jun 05 Python
python数据结构之链表的实例讲解
Jul 25 Python
python多进程实现文件下载传输功能
Jul 28 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
python中如何使用insert函数
Jan 09 Python
利用setuptools打包python程序的方法步骤
Jan 18 Python
python sitk.show()与imageJ结合使用常见的问题
Apr 20 Python
tensorflow模型的save与restore,及checkpoint中读取变量方式
May 26 Python
Python高并发和多线程有什么关系
Nov 14 Python
详解python的内存分配机制
May 10 Python
Python 高级库15 个让新手爱不释手(推荐)
May 15 Python
Python音乐爬虫完美绕过反爬
Aug 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 zend解密软件绿色版测试可用
2008/04/14 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
PHP简单生成缩略图相册的方法
2015/07/29 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
Yii2 rbac权限控制之菜单menu实例教程
2016/04/28 PHP
全面了解PHP中的全局变量
2016/06/17 PHP
php数据库的增删改查 php与javascript之间的交互
2017/08/31 PHP
PHP简单实现欧拉函数Euler功能示例
2017/11/06 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
js判断手机端(Android手机还是iPhone手机)
2015/07/22 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
AngularJS教程之MVC体系结构详解
2016/08/16 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
深入理解ES7的async/await的用法
2017/09/09 Javascript
17个Python小技巧分享
2015/01/23 Python
举例讲解Python中的算数运算符的用法
2015/05/13 Python
Python实现分割文件及合并文件的方法
2015/07/10 Python
用xpath获取指定标签下的所有text的实例
2019/01/02 Python
对Python闭包与延迟绑定的方法详解
2019/01/07 Python
python和JavaScript哪个容易上手
2020/06/23 Python
Django ModelForm组件原理及用法详解
2020/10/12 Python
Python getsizeof()和getsize()区分详解
2020/11/20 Python
香港时装购物网站:ZALORA香港
2017/04/23 全球购物
【魔兽争霸3重制版】原版画面与淬火MOD画面对比
2021/03/26 魔兽争霸
在职人员函授期间自我评价分享
2013/11/08 职场文书
机械工程师的岗位职责
2013/11/17 职场文书
农村面貌改造提升实施方案
2014/03/18 职场文书
创建青年文明号材料
2014/05/09 职场文书
机关驾驶员违规检讨书
2014/09/13 职场文书
2016年暑假家长对孩子评语
2015/12/01 职场文书
创业计划书之情侣餐厅
2019/09/29 职场文书
(开源)微信小程序+mqtt,esp8266温湿度读取
2021/04/02 Javascript
端午节将至,用Python爬取粽子数据并可视化,看看网友喜欢哪种粽子吧!
2021/06/11 Python
SQL写法--行行比较
2021/08/23 SQL Server