python getattr用法_python自省函数getattr的用法

getattr是python里的一个内建函数

getattr()这个方法最主要的作用是实现反射机制。也就是说可以通过字符串获取方法实例。这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载。

python里面跟getattr相关的有hasattr,setattr,delattr  ,那么我们通过下面的例子,来详细的说说他们的用法。

1 classXiaorui:2 def __init__(self):3 self.name = 'xiaorui'

4

5 defsetName(self, name):6 self.name =name7

8 defgetName(self):9 returnself.name10

11 defgreet(self):12 print "Hello, i'm %s" %self.name13

14 foo =Xiaorui()15

16printhasattr(foo,'setName')

一. hasattr(object,name)

判断object中是否具有name属性,例如:

print print hasattr(foo, 'setName') #判断setName是否存在,存在则返回True。

True

二. getattr(object,name,default)

如果存在name属性(方法)则返回name的值(方法地址)否则返回default值。

print getattr(foo, 'name', 'NA') #存在name属性,所以返回其value

xiaorui

print getattr(foo, 'age', 'NA')

NA

三. setattr(object,name,default)

setattr(foo,’age’,’18’)  #字符串可能会列出一个现有的属性(或一个新的属性)。这个函数将值赋给属性的

setattr(foo, 'age', '18')

print getattr(foo, 'age', 'NA')

18

四. delattr(object,’name’)

delattr(foo,’name’)#删除属性name,原值为‘xiaorui’

delattr(foo, 'name')

print getattr(foo, 'name', 'not find')

not find

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值