详解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读取注册表中值的方法
Apr 08 Python
python动态加载包的方法小结
Apr 18 Python
python+matplotlib绘制简单的海豚(顶点和节点的操作)
Jan 02 Python
Python模拟随机游走图形效果示例
Feb 06 Python
Python实现随机生成手机号及正则验证手机号的方法
Apr 25 Python
python统计字母、空格、数字等字符个数的实例
Jun 29 Python
python实现基于朴素贝叶斯的垃圾分类算法
Jul 09 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
python实现的生成word文档功能示例
Aug 23 Python
Python+OpenCV实现将图像转换为二进制格式
Jan 09 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
python实现局部图像放大
Nov 17 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读取目录及子目录下所有文件名的方法
2014/10/20 PHP
PHP中让json_encode不自动转义斜杠“/”的方法
2017/02/28 PHP
PHP7新功能总结
2019/04/14 PHP
js replace正则表达式应用案例讲解
2013/01/17 Javascript
一个JavaScript变量声明的知识点
2013/10/28 Javascript
Jquery弹出层插件ThickBox的使用方法
2014/12/09 Javascript
理解javascript模块化
2016/03/28 Javascript
基于JavaScript Array数组方法(新手必看篇)
2016/08/20 Javascript
使用JavaScriptCore实现OC和JS交互详解
2017/03/28 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
js实现会跳动的日历效果(完整实例)
2017/10/18 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
深入研究React中setState源码
2017/11/17 Javascript
vue微信分享出来的链接点开是首页问题的解决方法
2018/11/28 Javascript
jquery操作select常见方法大全【7种情况】
2019/05/28 jQuery
Vue实现浏览器打印功能的代码
2020/04/17 Javascript
如何使用vue slot创建一个模态框的实例代码
2020/05/24 Javascript
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Python实现读写INI配置文件的方法示例
2018/06/09 Python
在NumPy中创建空数组/矩阵的方法
2018/06/15 Python
pycharm配置git(图文教程)
2019/08/16 Python
python匿名函数lambda原理及实例解析
2020/02/07 Python
解析pip安装第三方库但PyCharm中却无法识别的问题及PyCharm安装第三方库的方法教程
2020/03/10 Python
一款简洁的纯css3代码实现的动画导航
2014/10/31 HTML / CSS
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
总经理助理工作职责
2014/02/06 职场文书
白酒市场营销方案
2014/02/25 职场文书
信用社主任竞聘演讲稿
2014/05/23 职场文书
个人授权委托书样本
2014/09/13 职场文书
2016年七夕爱情寄语
2015/12/04 职场文书
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
Golang 切片(Slice)实现增删改查
2022/04/22 Golang