详解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正则表达式操作指南(re使用)
Sep 06 Python
Python批量修改文本文件内容的方法
Apr 29 Python
Python在线运行代码助手
Jul 15 Python
深入理解python对json的操作总结
Jan 05 Python
Python用sndhdr模块识别音频格式详解
Jan 11 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
Python中作用域的深入讲解
Dec 10 Python
对python requests发送json格式数据的实例详解
Dec 19 Python
python爬虫获取百度首页内容教学
Dec 23 Python
Python3中列表list合并的四种方法
Apr 19 Python
python3.8.1+selenium实现登录滑块验证功能
May 22 Python
python tqdm库的使用
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类
2006/10/09 PHP
mysql4.1以上版本连接时出现Client does not support authentication protocol问题解决办法
2007/03/15 PHP
php 字符串替换的方法
2012/01/10 PHP
将word转化为swf 如同百度文库般阅读实现思路及代码
2013/08/09 PHP
PHP保存带BOM文件的方法
2015/02/12 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
PHP实现给定一列字符,生成指定长度的所有可能组合示例
2019/06/22 PHP
jquery下异步提交表单 异步跨域提交表单
2010/11/17 Javascript
div模拟滚动条效果示例代码
2013/10/16 Javascript
javascript嵌套函数和在函数内调用外部函数的区别分析
2016/01/31 Javascript
JavaScript通过代码调用Flash显示的方法
2016/02/02 Javascript
详解JS几种变量交换方式以及性能分析对比
2016/11/25 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
Vue 2.0+Vue-router构建一个简单的单页应用(附源码)
2017/03/14 Javascript
JavaScript中常见内置函数用法示例
2018/05/14 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
jQuery Raty星级评分插件使用方法实例分析
2019/11/25 jQuery
ES2020 已定稿,真实场景案例分析
2020/05/25 Javascript
js判断鼠标移入移出方向的方法
2020/06/24 Javascript
Vue 监听元素前后变化值实例
2020/07/29 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
Python实现从url中提取域名的几种方法
2014/09/26 Python
Python中的defaultdict模块和namedtuple模块的简单入门指南
2015/04/01 Python
详解django三种文件下载方式
2018/04/06 Python
python使用opencv对图像mask处理的方法
2019/07/05 Python
基于Django框架的权限组件rbac实例讲解
2019/08/31 Python
python ETL工具 pyetl
2020/06/07 Python
python爬虫多次请求超时的几种重试方法(6种)
2020/12/01 Python
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
商场消防管理制度
2014/01/12 职场文书
思想品德课教学反思
2014/02/10 职场文书
美德少年事迹材料1000字
2014/08/21 职场文书
业务内勤岗位职责
2015/04/13 职场文书
早恋主题班会
2015/08/14 职场文书
体育教师研修感悟
2015/11/18 职场文书
mysql序号rownum行号实现方式
2022/12/24 MySQL