hasattr(object, name)

判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False。

需要注意的是name要用括号括起来

>>> class test():

... name="xiaohua"

... def run(self):

... return "HelloWord"

...

>>> t=test()

>>> hasattr(t, "name") #判断对象有name属性

True

>>> hasattr(t, "run") #判断对象有run方法

True

>>>

getattr(object, name[,default])

获取对象object的属性或者方法,如果存在打印出来,如果不存在,打印出默认值,默认值可选。

需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号。

>>> class test():

... name="xiaohua"

... def run(self):

... return "HelloWord"

...

>>> t=test()

>>> getattr(t, "name") #获取name属性,存在就打印出来。

'xiaohua'

>>> getattr(t, "run") #获取run方法,存在就打印出方法的内存地址。

>

>>> getattr(t, "run")() #获取run方法,后面加括号可以将这个方法运行。

'HelloWord'

>>> getattr(t, "age") #获取一个不存在的属性。

Traceback (most recent call last):

File "", line 1, in

AttributeError: test instance has no attribute 'age'

>>> getattr(t, "age","18") #若属性不存在,返回一个默认值。

'18'

>>>

setattr(object, name, values)

给对象的属性赋值,若属性不存在,先创建再赋值。

>>> class test():

... name="xiaohua"

... def run(self):

... return "HelloWord"

...

>>> t=test()

>>> hasattr(t, "age") #判断属性是否存在

False

>>> setattr(t, "age", "18") #为属相赋值,并没有返回值

>>> hasattr(t, "age") #属性存在了

True

>>>

一种综合的用法是:判断一个对象的属性是否存在,若不存在就添加该属性。

>>> class test():

... name="xiaohua"

... def run(self):

... return "HelloWord"

...

>>> t=test()

>>> getattr(t, "age") #age属性不存在

Traceback (most recent call last):

File "", line 1, in

AttributeError: test instance has no attribute 'age'

>>> getattr(t, "age", setattr(t, "age", "18")) #age属性不存在时,设置该属性

'18'

>>> getattr(t, "age") #可检测设置成功

'18'

>>>

总结

以上所述是小编给大家介绍的Python的hasattr() getattr() setattr() 函数使用方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

本文标题: 详解Python的hasattr() getattr() setattr() 函数使用方法

本文地址: http://www.cppcns.com/jiaoben/python/232381.html

python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法相关推荐

  1. python中 的用法_详解python中@的用法

    python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,@function作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 结 ...

  2. 详解python中的用法_详解python中@的用法

    python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 def funa(d ...

  3. 详解python中的用法_详解python中*号的用法

    1.表示乘号 2.表示倍数,例如: def T(msg,time=1): print((msg+' ')*time) T('hi',3) 打印结果(打印3次): hi hi hi 3.单个 * (1) ...

  4. python中byte类型_详解python string类型 bytes类型 bytearray类型

    搜索热词 一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode ...

  5. python语言format用法_详解Python中的format格式化函数的使用方法

    format函数实现字符串格式化的功能 基本语法为: 通过 : 和 {} 来控制字符串的操作 一.对字符串进行操作 1. 不设置指定位置,按默认顺序插入 ①当参数个数等于{}个数的时候 str_1 = ...

  6. python中递归函数写法_详解python中递归函数

    函数执行流程 def foo1(b,b1=3): print("foo1 called",b,b1) def foo2(c): foo3(c) print("foo2 c ...

  7. python字符串切片用法_详解Python字符串切片

    在python中,我们定义好一个字符串,如下所示. 在python中定义个字符串然后把它赋值给一个变量. 我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始(==,我自己都觉得写的好脑残了 ...

  8. python中集合变量_详解python的变量缓存机制

    变量的缓存机制 变量的缓存机制(以下内容仅对python3.6.x版本负责) 机制 只要有两个值相同,就只开辟一个空间 为什么要有这样的机制 在计算机的硬件当中,内存是最重要的配置之一,直接关系到程序 ...

  9. 正则表达式在python中的应用_详解Python中的正则表达式的用法

    如果直接在命令行中利用input和raw_input读入一个文件来处理,并且想要采用直接将文件拖入命令行来处理的方式, input方法可以直接处理,而如果要采用raw_input的方法的话,读入文件地 ...

最新文章

  1. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
  2. “nvinfer1::ILogger”: 不能实例化抽象类
  3. r4卡2020整合内核_R4卡使用方法!游戏介绍及常见问题!任天堂掌机通用
  4. python 字符串拼接_Python字符串拼接的6种方法(转)
  5. Activity的回调机制---Activity学习笔记(三)
  6. [Leetcode][第77题][JAVA][组合][回溯]
  7. python输出星号_Python的星号(*、**)的作用
  8. A*算法及其matlab实现
  9. LindDotNetCore~入门基础
  10. VS2019 windows桌面应用_基于.Net Core平台开发WinForms应用程序
  11. VBA代码片之计算加权平均分
  12. JS实现【队列】插队功能
  13. 简单的快递管理系统(c语言版)--大一下的总结
  14. 缺陷管理工具大PK:UniPro、Bugzilla和Teambition哪家强
  15. 单片机课程设计-基于单片机直流电机控制器设计
  16. 我们这一代人的困惑 --转自于宙TEDx大会上的演讲
  17. 「自控元件及线路」4 小功率同步电机
  18. NanoDet目标检测新网络!比YOLO跑的还快
  19. 反编译系列教程(上)
  20. mongodb Linux C++开发环境调研

热门文章

  1. 工业控制计算机应用领域,工控机的应用领域以及它的未来发展趋势
  2. DevOps—基本概念(一)
  3. pip3 install 报错 protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.8
  4. OPPOA57刷机/OPPOA57刷机包下载/OPPOA57怎么刷机/OPPOA57刷机教程
  5. python程序员面试自我介绍_程序员面试经验总结
  6. 数据库读取速度与文件IO读取速度比较
  7. 一个超简单的android任务列队(排队)
  8. nginx 报 accept4() failed (24: Too many open files)
  9. R语言打印函数,print函数和cat函数实战
  10. php 合并数组 不覆盖,PHP合并数组的2种方法小结