class Person:
def __init__(self):
self.name = 'zhangsan'
def setName(self,name):
self.name = name
def getName(self):
return self.name
def greet(self):
print "Hello,i'm %s"%self.name
foo = Person() #以上为下面解说中涉及到的基础代码清单
一.hasattr(object,name)->bool 判断object中是否具有name属性,例如:
>>> foo = Person()
>>> hasattr(foo,'setName') #判断setName是否存在,存在则返回True。
True
>>> hasattr(foo,'setAge')
False
二.getattr(object,name,default) -> 如果存在name属性(方法)则返回name的值(方法地址)否则返回default值。
>>> getattr(foo,'name','NA') #存在name属性,所以返回其value
'zhangsan'
>>> getattr(foo,'age','NA')
'NA'
>>> getattr(foo,'getName','NA')
>#存在getName方法,所以返回其地址。
还有别的用法吗??
三.setattr(object,name,default)
>>> setattr(foo,'age','18') #字符串可能会列出一个现有的属性(或一个新的属性)。这个函数将值赋给属性的.类似foo.age = 18
>>> getattr(foo,'age','not find')
'18'
>>> setattr(foo,'work','student') #字符串可能会列出一个一个新的属性,这个函数将值赋给属性的
>>> getattr(foo,'work','not find')
'student'
四.delattr(object,'name')
>>> delattr(foo,'name')#删除属性name,原值为‘zhangsan’
>>> getattr(foo,'name','not find')
'not find'
阅读(2529) | 评论(0) | 转发(0) |