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

python面向对象--反射

时间:2018-06-16 16:18:53      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:--   def   pre   sel   self   res   name   python面向对   pytho   

1.反射包含四个函数hasattr(),getattr(),setattr(),delattr()
2.hasattr(o,name)判断类中是否存在name属性或方法

class test(object):
    def __init__(self):
        self.name=‘张三‘
    def show(self):
        print(‘姓名:%s‘%self.name)

T=test()
print(hasattr(T,‘show‘))
print(hasattr(T,‘name‘))
print(hasattr(T,‘name1‘))

>>:
True
True
False

3.getattr(o,name)根据name字符串取得对应类中的属性或方法

class test(object):
    def __init__(self):
        self.name=‘张三‘
    def show(self):
        print(‘姓名:%s‘%self.name)

T=test()
res=getattr(T,‘show‘)
res()

>>:
姓名:张三

4.setattr(o,name,value)设置类的属性值

class test(object):
    def __init__(self):
        self.name=‘张三‘
    def show(self):
        print(‘姓名:%s‘%self.name)

T=test()
setattr(T,‘name‘,‘李四‘)
print(T.name)
>>:
李四

5.delattr(o,name)删除类的属性或方法

class test(object):
    def __init__(self):
        self.name=‘张三‘
    def show(self):
        print(‘姓名:%s‘%self.name)

T=test()
delattr(T,‘name‘)
print(T.name)
>>:
报错

python面向对象--反射

标签:--   def   pre   sel   self   res   name   python面向对   pytho   

原文地址:http://blog.51cto.com/13803166/2130052

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