python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法
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() 函数使用方法相关推荐
- python中 的用法_详解python中@的用法
python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,@function作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 结 ...
- 详解python中的用法_详解python中@的用法
python中@的用法 @是一个装饰器,针对函数,起调用传参的作用. 有修饰和被修饰的区别,作为一个装饰器,用来修饰紧跟着的函数(可以是另一个装饰器,也可以是函数定义). 代码1 def funa(d ...
- 详解python中的用法_详解python中*号的用法
1.表示乘号 2.表示倍数,例如: def T(msg,time=1): print((msg+' ')*time) T('hi',3) 打印结果(打印3次): hi hi hi 3.单个 * (1) ...
- python中byte类型_详解python string类型 bytes类型 bytearray类型
搜索热词 一.python3对文本和二进制数据做了区分.文本是Unicode编码,str类型,用于显示.二进制类型是bytes类型,用于存储和传输.bytes是byte的序列,而str是unicode ...
- python语言format用法_详解Python中的format格式化函数的使用方法
format函数实现字符串格式化的功能 基本语法为: 通过 : 和 {} 来控制字符串的操作 一.对字符串进行操作 1. 不设置指定位置,按默认顺序插入 ①当参数个数等于{}个数的时候 str_1 = ...
- python中递归函数写法_详解python中递归函数
函数执行流程 def foo1(b,b1=3): print("foo1 called",b,b1) def foo2(c): foo3(c) print("foo2 c ...
- python字符串切片用法_详解Python字符串切片
在python中,我们定义好一个字符串,如下所示. 在python中定义个字符串然后把它赋值给一个变量. 我们可以通过下标访问单个的字符,跟所有的语言一样,下标从0开始(==,我自己都觉得写的好脑残了 ...
- python中集合变量_详解python的变量缓存机制
变量的缓存机制 变量的缓存机制(以下内容仅对python3.6.x版本负责) 机制 只要有两个值相同,就只开辟一个空间 为什么要有这样的机制 在计算机的硬件当中,内存是最重要的配置之一,直接关系到程序 ...
- 正则表达式在python中的应用_详解Python中的正则表达式的用法
如果直接在命令行中利用input和raw_input读入一个文件来处理,并且想要采用直接将文件拖入命令行来处理的方式, input方法可以直接处理,而如果要采用raw_input的方法的话,读入文件地 ...
最新文章
- 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
- “nvinfer1::ILogger”: 不能实例化抽象类
- r4卡2020整合内核_R4卡使用方法!游戏介绍及常见问题!任天堂掌机通用
- python 字符串拼接_Python字符串拼接的6种方法(转)
- Activity的回调机制---Activity学习笔记(三)
- [Leetcode][第77题][JAVA][组合][回溯]
- python输出星号_Python的星号(*、**)的作用
- A*算法及其matlab实现
- LindDotNetCore~入门基础
- VS2019 windows桌面应用_基于.Net Core平台开发WinForms应用程序
- VBA代码片之计算加权平均分
- JS实现【队列】插队功能
- 简单的快递管理系统(c语言版)--大一下的总结
- 缺陷管理工具大PK:UniPro、Bugzilla和Teambition哪家强
- 单片机课程设计-基于单片机直流电机控制器设计
- 我们这一代人的困惑 --转自于宙TEDx大会上的演讲
- 「自控元件及线路」4 小功率同步电机
- NanoDet目标检测新网络!比YOLO跑的还快
- 反编译系列教程(上)
- mongodb Linux C++开发环境调研
热门文章
- 工业控制计算机应用领域,工控机的应用领域以及它的未来发展趋势
- DevOps—基本概念(一)
- pip3 install 报错 protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.8
- OPPOA57刷机/OPPOA57刷机包下载/OPPOA57怎么刷机/OPPOA57刷机教程
- python程序员面试自我介绍_程序员面试经验总结
- 数据库读取速度与文件IO读取速度比较
- 一个超简单的android任务列队(排队)
- nginx 报 accept4() failed (24: Too many open files)
- R语言打印函数,print函数和cat函数实战
- php 合并数组 不覆盖,PHP合并数组的2种方法小结