详解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求pi的方法
Oct 08 Python
Python 实现数据库更新脚本的生成方法
Jul 09 Python
利用Python将时间或时间间隔转为ISO 8601格式方法示例
Sep 05 Python
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python实现简单http服务器
Apr 12 Python
python调用Matplotlib绘制分布点并且添加标签
May 31 Python
pyqt实现.ui文件批量转换为对应.py文件脚本
Jun 19 Python
Python如何存储数据到json文件
Mar 09 Python
jupyternotebook 撤销删除的操作方式
Apr 17 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
flask项目集成swagger的方法
Dec 09 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 07 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
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
Javascript类定义语法,私有成员、受保护成员、静态成员等介绍
2011/12/08 Javascript
用jQuery获取IE9下拉框默认值问题探讨
2013/07/22 Javascript
基于jquery的9行js轻松实现tab控件示例
2013/10/12 Javascript
jQuery中ajax的使用与缓存问题的解决方法
2013/12/19 Javascript
Javascript学习笔记之函数篇(五) : 构造函数
2014/11/23 Javascript
jquery实现聚光灯效果的方法
2015/02/06 Javascript
jQuery可见性过滤选择器用法示例
2016/09/09 Javascript
使用node.js搭建服务器
2017/05/20 Javascript
js异步编程小技巧详解
2017/08/14 Javascript
js获取html页面代码中图片地址的实现代码
2018/03/05 Javascript
Vue源码之关于vm.$delete()/Vue.use()内部原理详解
2019/05/01 Javascript
javascript系统时间设置操作示例
2019/06/17 Javascript
微信小程序中为什么使用var that=this
2019/08/27 Javascript
vue 实现input表单元素的disabled示例
2019/10/28 Javascript
vue-cli点击实现全屏功能
2020/03/07 Javascript
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python使用multiprocessing创建进程的方法
2015/06/04 Python
从django的中间件直接返回请求的方法
2018/05/30 Python
python 循环数据赋值实例
2019/12/02 Python
Python datetime 格式化 明天,昨天实例
2020/03/02 Python
python矩阵运算,转置,逆运算,共轭矩阵实例
2020/05/11 Python
css3进行截取替代js的substring
2013/09/02 HTML / CSS
美国最大的农村生活方式零售店:Tractor Supply Company(TSC)
2017/05/15 全球购物
Agoda台湾官网:国内外订房2折起
2018/03/20 全球购物
德国W家官网,可直邮中国的母婴商城:Windeln.de
2021/03/03 全球购物
班组长安全生产职责
2013/12/16 职场文书
优质服务演讲稿
2014/05/14 职场文书
社区爱国卫生月活动总结
2014/06/30 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
python爬虫之爬取笔趣阁小说
2021/04/22 Python
关于mysql中时间日期类型和字符串类型的选择
2021/11/27 MySQL
Vue3如何理解ref toRef和toRefs的区别
2022/02/18 Vue.js