Chinaunix首页 | 论坛 | 博客
  • 博客访问: 108709
  • 博文数量: 67
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 577
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-16 09:51
个人简介

啄木鸟专吃虫,故名啄木鸟。

分类: Python/Ruby

2014-04-21 10:43:49

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) |
给主人留下些什么吧!~~