您的位置:首页 > 编程语言 > Python开发

python反射(自省)

2016-07-20 17:09 519 查看
反射(自省)的简单理解:

通过类名实例化对象;

得到类的所有属性和函数,并实现调用;

简单示例:

# -*- coding: utf-8 -*-
class User(object):
def __init__(self):
self.name = 'abc'
self.age = 18

def introduce(self):
print "My name is :"+self.name + ", age:" + str(self.age)

# 根据类名实例化对象
def get_obj(name):
obj = globals()[name]()
return obj

name = User.__name__  # 得到类名
u = get_obj(name)
u.introduce()
输出结果:
My name is :abc, age:18


常用函数:

print dir(u)                     # 返回该对象的所有属性和函数列表
print hasattr(u, 'name')         # 判断是否存在传入的属性或函数
print getattr(u, 'name')         # 得到对象属性值
print setattr(u, 'name', 'ccc')  # 设置对象属性的值
print u.__dict__                 # 返回该对象自定义属性
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 反射 自省