首页 > 编程语言 > 详细

python 面向对象 反射

时间:2019-02-19 19:03:36      阅读:136      评论: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 版权所有
打开技术之扣,分享程序人生!