zoukankan      html  css  js  c++  java
  • 类的反射

    反射

    1.什么是反射?以及应⽤场景?(2分)
    通过字符串的形式操作对象相关的属性。python中的⼀切事物都是对象(都可以使⽤反射)
    # python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)
    # 从实例的角度去研究反射 可以使用
    # getattr(obj,'func')()
    # 从类的角度研究反射 可以使用
    # getattr(A,'func')(obj)
    # 从当前脚本研究反射 可以使用
    # hasattr(this_module, 's1')
    # 在其他模块研究反射 可以使用
    # getattr(obj,'test')()
    # 实列
    class A():
        def __init__(self,name):
            self.name=name
    obj=A('SQ')
    print(hasattr(obj,'name'))#True
    print(getattr(obj,'name',666))#SQ 加第3个参数 不会报错
    setattr(obj,'hobby','玩')#增加属性   可以覆盖 左边属性 右边属性值
    print(getattr(obj,'hobby'))
    delattr(obj,'name')#删除属性
    print(getattr(obj,'name','么有了呀'))
    
    # 总结
    # print(hasattr(obj,'name'))#查询 返bool 确认 有没有这个属性
    # print(getattr(obj,'name','没有'))#查询 返回 对应属性值  加第3个参数 不会报错
    # setattr(obj,'aa','aa')#增加属性第2个参数是键第3个是值   可以覆盖
    # delattr(obj,'name')#删除属性
    

  • 相关阅读:
    c#备忘知识点
    [置顶] IE6支持的滑动菜单栏
    摩斯电碼中英文对照表
    2013年5月15日星期三
    2013年5月9日星期四
    2013年5月12日16:20:43母亲节
    2013年5月8日星期三
    JS前端DOM中Range疑问
    2013年5月14日星期二
    2013年5月13日星期一
  • 原文地址:https://www.cnblogs.com/saoqiang/p/12386634.html
Copyright © 2011-2022 走看看