详解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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
使用Nginx+uWsgi实现Python的Django框架站点动静分离
Mar 21 Python
Python实现简单登录验证
Apr 13 Python
python字符串中的单双引
Feb 16 Python
python数据结构之列表和元组的详解
Sep 23 Python
Python实现PS滤镜中马赛克效果示例
Jan 20 Python
python中pylint使用方法(pylint代码检查)
Apr 06 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
python多进程并行代码实例
Sep 30 Python
Python基于当前时间批量创建文件
May 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.ini中文版
2006/10/09 PHP
php集成环境xampp中apache无法启动问题解决方案
2014/11/18 PHP
PHP实现XML与数据格式进行转换类实例
2015/07/29 PHP
实现PHP搜索加分页
2016/10/12 PHP
PHP简单实现冒泡排序的方法
2016/12/26 PHP
PHP实现登录验证码校验功能
2018/05/17 PHP
基于jQuery的为attr添加id title等效果的实现代码
2011/04/20 Javascript
js验证整数加保留小数点的简单实例
2013/12/02 Javascript
js处理自己不能定义二维数组的方法详解
2014/03/03 Javascript
借助JavaScript脚本判断浏览器Flash Player信息的方法
2014/07/09 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
js仿微信语音播放实现思路
2016/12/12 Javascript
使用mock.js随机数据和使用express输出json接口的实现方法
2018/01/07 Javascript
javascript合并两个数组最简单的实现方法
2019/09/14 Javascript
JS实现网页烟花动画效果
2020/03/10 Javascript
Vue页面跳转传递参数及接收方式
2020/09/09 Javascript
NodeJS开发人员常见五个错误理解
2020/10/14 NodeJs
深入解析Python中函数的参数与作用域
2016/03/20 Python
python 实现网上商城,转账,存取款等功能的信用卡系统
2016/07/15 Python
pandas全表查询定位某个值所在行列的方法
2018/04/12 Python
解决Python下json.loads()中文字符出错的问题
2018/12/19 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
python 检查数据中是否有缺失值,删除缺失值的方式
2019/12/02 Python
中国宠物用品商城:E宠商城
2016/08/27 全球购物
Uber Eats台湾:寻找附近提供送餐服务的餐厅
2018/05/07 全球购物
英国门销售网站:Green Tree Doors
2020/01/07 全球购物
自荐信怎么写呢?
2013/12/09 职场文书
高二政治教学反思
2014/02/01 职场文书
小学三八妇女节活动方案
2014/03/16 职场文书
会计学专业求职信
2014/07/17 职场文书
医院深入开展党的群众路线教育实践活动实施方案
2014/08/27 职场文书
授权委托书样本
2014/09/25 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
2014年教师德育工作总结
2014/11/10 职场文书
2015年医务人员医德医风自我评价
2015/03/03 职场文书
浅谈Redis 中的过期删除策略和内存淘汰机制
2022/04/03 Redis