python的反射机制

获得对象使用__import__方法

获得对象的属性和方法使用getattr()方法


注意点:

1. 如下例子中, 'home.cates'文件夹下有'LoginError.py'文件, 文件包含class LoginError

使用import 只能引入到文件, 到class级别应该使用getattr, 

2.获得类以后, 要创建对象, 在getattr()后再加上(), 如例中的return

3. 比较奇特的一点是不管属性和方法都使用getattr获得, 如果要调用方法, 使用getattr(xx,'method')()


基本上两个函数可以完成对象的反射


'''
查找创建对象
 _cls_name='LoginError'
 _packet_name = 'home.cates.'
'''
def get_cate_obj(_cls_name):
    _packet_name = 'home.cates.'+_cls_name
    _module_home = __import__(_packet_name,globals(),locals(),[_cls_name])

    obj =  getattr(_module_home,_cls_name)
    
    return obj()
http://blog.csdn.net/lokibalder/article/details/3459722
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值