python反射(自省)

来源:互联网 发布:异地淘宝客服招聘 编辑:程序博客网 时间:2024/06/05 20:11

反射(自省)的简单理解:
通过类名实例化对象;
得到类的所有属性和函数,并实现调用;

简单示例:

# -*- 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 objname = 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__                 # 返回该对象自定义属性
0 0