码迷,mamicode.com
首页 > 编程语言 > 详细

Python反射函数

时间:2017-01-10 20:56:29      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:class   属性   变量   地址   div   value   set   int   setname   

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

     def __init__(self):

        self.name = ‘fengyun’

    def setName(self,name):

        self.name = name

    def getName(self):

        return self.name

    def greet(self):

        print “Hello,i’m %s”%self.name  

foo = Xiaorui()

一. hasattr(object,name)

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

foo = Xiaorui()

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

二. getattr(object,name,default)

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

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

‘fengyun’

getattr(foo,’age’,’NA’)

‘NA’

一会发现,他其实跟直接object.name 用法一样。 

三. setattr(object,name,default)

setattr(foo,’age’,’18’) #

字符串可能会列出一个现有的属性(或一个新的属性)。这个函数将值赋给属性的

.类似foo.age = 18

getattr(foo,’age’,’not find’)

’18’ 

setattr(foo,’work’,’student’) #

可以用setattr方法,把foo的work变量,设置为student

getattr(foo,’work’,’not find’)

‘student’

四. delattr(object,’name’)

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

getattr(foo,’name’,’not find’)

‘not find’

Python反射函数

标签:class   属性   变量   地址   div   value   set   int   setname   

原文地址:http://www.cnblogs.com/liyqiang/p/6270501.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!