反射1
Posted ArtisticMonk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了反射1相关的知识,希望对你有一定的参考价值。
##反射 #通过字符串映射或修改程序运行时的状态、属性、方法,有以下四个方法 def talk(self): print("%s 的叫声真好听...." % self.name) class Proper(object): def __init__(self,name): self.name = name def eat(self): print("%s is eating...." % self.name) chyice = Proper("CaiCai") ##想要给用户调用确定的调用方式,就用反射 chyInput = input(">>:").strip() ###用户的输入返回的时字符串,不能直接调用 # print(hasattr(chyice,chyInput))###判断用户输入的方法有没有存在,如果存在就返回True,不存在就返回Flase,不会报错 # print(getattr(chyice,chyInput))###根据字符串去获取obj的对象里的对应的方法的内存地址 # getattr(chyice,chyInput)() ##所以通过以上两个方法我们就可以这样做: if hasattr(chyice,chyInput): delattr(chyice,chyInput)####删除用户输入的属性值 ################## # Chy = getattr(chyice,chyInput) # Chy() ################# # setattr(chyice,chyInput,talk)####也可以用来设置方法里面的属性值比如输入name else : ###假如这个方法不存在我们就可以创建一个新的方法,首先要定义一个 setattr(chyice,chyInput,talk)###设置新的属性 chyice.talk(chyice)###这里的值不会自动关联,所以要自己传一个值进去 d=chyice.name######setattr() print(d(chyice))
以上是关于反射1的主要内容,如果未能解决你的问题,请参考以下文章
为啥我的 Ray March 片段着色器反射纹理查找会减慢我的帧速率?
将 OpenGL 片段着色器设置为仅通过漫反射减少 vec4 色点的 RGB 值,而不是 alpha