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

python 反射的用法

时间:2017-12-14 21:14:02      阅读:134      评论:0      收藏:0      [点我收藏+]

标签:gpo   pre   color   elf   val   存在   false   ret   更改   

class Foo():
    def __init__(self,name):
        self.name=name
    def text(self):
        return 123
f=Foo(1)
‘‘‘
hasattr(obj,name)
判断一个对象里面是否有name属性,或者name方法,返回bool值,有name特性返回Ture,否则
返回FALSE
注意:name需要引号‘‘‘
print(hasattr(f,name))
print(hasattr(f,text))
print(hasattr(f,self.name))
print(hasattr(f,__init__))
‘‘‘
getattr(obj,name,[default])
获取对象的属性或方法,如果存在,则返回它的属性值,如果不存在则会报错,也可以设置一个
默认值,也会返回这个默认值;如果是对象的方法,则返回一个方法函数的内存地址,
如果想要运行它,可以在后面添加()以及参数‘‘‘
print(getattr(f,name))
print(getattr(f,text)())
print(getattr(f,__init__)(lll))
print(getattr(f,ssss,11))
‘‘‘
setattr(obj,name,value)
更改属性的值,如果属性不存在,会创建一个属性,然后赋值,如果更改的是方法,他将
把方法更改为属性,并为其赋值
‘‘‘
print(setattr(f,age,18))
print(setattr(f,name,ldq))
print(setattr(f,text,fun))
print(getattr(f,age))
print(getattr(f,name))
print(getattr(f,text))

 

python 反射的用法

标签:gpo   pre   color   elf   val   存在   false   ret   更改   

原文地址:http://www.cnblogs.com/ldq1996/p/8039410.html

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