getattr是python里的一个内建函数
getattr()这个方法最主要的作用是实现反射机制。也就是说可以通过字符串获取方法实例。这样,你就可以把一个类可能要调用的方法放在配置文件里,在需要的时候动态加载。
python里面跟getattr相关的有hasattr,setattr,delattr ,那么我们通过下面的例子,来详细的说说他们的用法。
1 class Xiaorui: 2 def __init__(self): 3 self.name = 'xiaorui' 4 5 def setName(self, name): 6 self.name = name 7 8 def getName(self): 9 return self.name 10 11 def greet(self): 12 print "Hello, i'm %s" % self.name 13 14 foo = Xiaorui() 15
16print hasattr(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
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
长按识别二维码并关注微信
更方便到期提醒、手机管理