首页 > 编程语言 > 详细

python 面向对象 反射

时间:2019-02-19 19:03:36      阅读:138      评论:0      收藏:0      [点我收藏+]
  1. 什么是反射
    通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)
  2. hasattr
    判断属性方法是否存在
  3. getattr
    获取属性方法
  4. setattr
    设置属性方法
  5. delattr
    删除属性方法
  6. 使用例子
    class Person:
        sex = ‘male‘
        def __init__(self,name):
            self.name = name
        def sayHi(self):
            print(‘hi, ‘+self.name+‘!‘)
        @classmethod
        def show_Type(cls):
            print(cls.sex)
    hsr = Person(‘hsr‘)
    #判断是否存在
    has_arg = hasattr(hsr,‘name‘)
    print(has_arg)
    has_method = hasattr(hsr,‘sayHi‘)
    print(has_method)
    #获取
    name = getattr(hsr,‘name‘)
    print(name)
    func = getattr(hsr,‘sayHi‘)
    func()
    #设置
    setattr(hsr,‘name‘,‘cool‘)
    setattr(hsr,‘sayHi‘,lambda self:self.name)
    #删除
    delattr(hsr,‘name‘)
    delattr(hsr,‘sayHi‘)
    
    #反射类、模块的属性和方法相同,将对象换成对应的名字就行
    
    #获取自己模块的名字,使用sys.modules[__name__]

     

python 面向对象 反射

原文:https://www.cnblogs.com/walthwang/p/10402888.html

踩
(0)
赞
(0)
   
举报
评论 一句话评论(0)
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!