Python的hasattr()、getattr()、setattr() 函数用法
hasattr()
hasattr() 函数用来判断某个类实例对象是否包含指定名称的属性或方法。
该函数的语法格式如下:
hasattr(obj, name)
其中 obj 指的是某个类的实例对象,name 表示指定的属性名或方法名,返回BOOL值,有name属性返回True, 否则返回False。
例子:
class demo:def __init__ (self):self.name = "lily"def say(self):print("say hi")d = demo()
print(hasattr(d, 'name'))
print(hasattr(d, 'say'))
print(hasattr(d, 'eat'))
运行结果如下:
True
True
False
getattr()
getattr() 函数获取某个类实例对象中指定属性的值。
该函数的语法格式如下:
getattr(object, name[, default])
其中,obj 表示指定的类实例对象,name 表示指定的属性名,而 default 是可选参数,用于设定该函数的默认返回值,即当函数查找失败时,如果不指定 default 参数,则程序将直接报 AttributeError 错误,反之该函数将返回 default 指定的值。
例子:
class demo:def __init__ (self):self.name = "lily"def say(self):return "say hi"d = demo()
print(getattr(d, 'name'))
print(getattr(d, 'say'))
print(getattr(d, 'eat'))
运行结果如下:
lily
<bound method demo.say of <__main__.demo object at 0x7f31c630d0a0>>
Traceback (most recent call last):File "/test.py", line 11, in <module>print(getattr(d, 'eat'))
AttributeError: 'demo' object has no attribute 'eat'
可以看到,对于类中已有的属性,getattr() 会返回它们的值,而如果该名称为方法名,则返回该方法的状态信息;反之,如果该明白不为类对象所有,要么返回默认的参数,要么程序报 AttributeError 错误。
需要注意的是,如果是返回的对象的方法,返回的是方法的内存地址,如果需要运行这个方法,可以在后面添加一对括号。比如:
class demo:def __init__ (self):self.name = "lily"def say(self):return "say hi"def eat(self, something):return f"eat {something}"d = demo()
print(getattr(d, 'name'))
print(getattr(d, 'say'))
print(getattr(d, 'eat')('apple'))
print(getattr(d, 'eat', 'no eat')('banana'))
运行结果如下:
lily
<bound method demo.say of <__main__.demo object at 0x7fe99b1ca0a0>>
eat apple
eat banana
setattr()
setattr() 函数最基础的功能是修改类实例对象中的属性值。其次,它还可以实现为实例对象动态添加属性或者方法。
该函数的语法格式如下:
setattr(obj, name, value)
例子:
class demo:def __init__ (self):self.name = "lily"d = demo()
print(getattr(d, 'name'))
print('----------')
setattr(d, 'name', 'tom')
print(getattr(d, 'name'))
print('----------')
print(hasattr(d, 'age'))
setattr(d, 'age', '18')
print(hasattr(d, 'age'))
print(getattr(d, 'age'))
运行结果如下:
lily
----------
tom
----------
False
True
18
Python的hasattr()、getattr()、setattr() 函数用法相关推荐
- python中setattr用法_详解Python的hasattr() getattr() setattr() 函数使用方法
hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...
- Python的hasattr() getattr() setattr() 函数使用方法详解
Python的hasattr() getattr() setattr() 函数使用方法详解 (一) hasattr(object,name) 函数 判断一个对象里面是否有 name 属性或者 name ...
- Python中hasattr() getattr() setattr() 函数的使用
hasattr(object,name)函数: 判断一个对象里面是否有name属性或者name方法,返回bool值,有name属性(方法)返回True,否则返回False. class functio ...
- Python的hasattr() getattr() setattr() 函数使用方法
hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. >>> class ...
- [转载] python hasattr函数_Python的hasattr() getattr() setattr() 函数使用方法详解
参考链接: Python hasattr() hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回Fa ...
- python hasattr() getattr() setattr()函数的使用
hasattr(object,name):用于判断一个对象里中是否存在name这一特性. 由测试结果可知,对象a里包含特性name和方法greet(),所以输出True,而不包含特性age,所以has ...
- python hasattr函数_Python的hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...
- python hasattr函数_Python的反射机制、hasattr() getattr() setattr() 函数使用方法详解
hasattr(object, name) 判断一个对象里面是否有name属性或者name方法,返回BOOL值,有name特性返回True, 否则返回False. 需要注意的是name要用括号括起来 ...
- Python hasattr() getattr() setattr() 函数使用
1.setattr(object, name, values) 给对象设置属性,如果对象不存在,则创建对象 layers = nn.Sequential(nn.Conv2d(curr_dim, cur ...
- Python的hasattr(),getattr(),setattr()
1. hasattr(object, name) 判断object里是否有name属性,有就返回True,没有则返回False. class MyClass(object):name = 'jack' ...
最新文章
- OpenCL框架与示例
- CentOS7下的Django2集成部署五:Jenkins的流水线部署pipeline-job
- c# 扩展方法奇思妙用高级篇六:WinForm 控件选择器
- python模块下载连接清华镜像的具体步骤_如何下载Pycharm开源版以及设置国内镜像源-百度经验...
- CSS边界属性的负值
- 断言、触发器、存储过程
- TensorFlow入门--队列与TensorBoard操作
- FPGA机器学习之学习的方向
- 双重差分模型能做固定效应吗_互助问答第53期:控制时间效应、交互项等问题...
- MySQL之视图、触发器、事务、存储过程、函数
- 1085 Perfect Sequence (25 分)
- 基于TMC4361-超静音闭环步进电机驱动方案
- 跨境电商亚马逊最新骗局揭秘:所谓的跨境电商亚马逊店铺真的能赚钱吗?真的靠谱?
- Windows Live SkyDrive 介绍之图片存储:摄影师在线图片展示的新选择
- lambda分组集合中list和set区别
- 测试人员的KPI考核指标
- 微信小程序 实现 树形菜单其实很简单
- 2019数博会参会嘉宾数量、层级、范围创历届新高,全球领袖级企业竞相亮相
- 综述 | 目标检测中的多尺度检测方法
- 可以降低汽车气缸里面的机油由于摩擦产生的蓝烟的机油添加剂
热门文章
- python中格式化输出三种形式学习总结
- 华为P9手机的品质还需工匠精神
- 共识是群体的意见和信念,Web3共识的来源有哪些?
- 2006-11-26 理想的生活?
- python 爬虫入门 到 初步精通罢
- MySQL该如何将月增上亿条数据的单表处理方案优雅落地?
- 计算机桌面图标教案,《认识“我的电脑”》教学设计
- 深度学习“三巨头”、图灵奖得主 Yann LeCun:我没有天赋,所以才追随聪明人
- 从微视“脱单”看短视频的社交价值
- zynq 原理图对照说明