9.3反射

Posted 知识补全计划

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了9.3反射相关的知识,希望对你有一定的参考价值。

反射:

  • 反射就是可以从对象中搜索出所需的属性
  • 先检测是否存在某属性用hasattr,如果要获取用getattr,如果对属性要进行添加或修改用setattr,如果需要删除用delattr
  • 【如果没有某个属性,getattr会报错,setattr不会报错,delattr会报错】
class A:
    haha=1
    def helo(self):
        pass
a=A()
choice=input("请输入要检测的属性:")
if hasattr(a,choice):##如果有该属性
    print(getattr(a,choice))###获取属性
    #如果是一个函数:f=getattr(a,choice),   f(参数)来调用
else:
    setattr(a,choice,666)
    print(getattr(a, choice))
    print(a.__dict__)###显示的是a的实例变量
    delattr(a,choice)##获取完后尝试删除

print(a.__dict__)###结果显示刚刚新添加的已经被删除
  • 对于需要先判断是否存在某属性的可以多用反射

以上是关于9.3反射的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 Ray March 片段着色器反射纹理查找会减慢我的帧速率?

OpenGL片段着色器不照亮场景

将 OpenGL 片段着色器设置为仅通过漫反射减少 vec4 色点的 RGB 值,而不是 alpha

反射机制

反射机制入门

反射机制入门