我们在实际应用中会碰到这样的场景:写好代码之后,我们希望通过输入代码指令直接调用某个函数或者方法,通常的做法,我们会采用if语句来实现,
a=input('<<<')
if a == 要输入的指令
代码块
elif a==要输入的指令
代码块
....
当需要的判断比较少的时候,这样做是没有问题的,但当需要判断的代码比较多的时候,代码就会变的非常长。
这时我们可以利用反射来快速实现这一功能。
反射:是字符串类型的数据,去操作变量、方法、函数等。
常用的反射方法有:
getattr() 获取反射的方法
hasattr() 判断是否存在反射的方法,通常与getattr连用
1)在类中的反射。可以用对象名获取对象的属性和方法,也可以用类名获取静态属性、类方法和静态方法。代码格式如下:
getattr(类或对象名,“属性名”)
class A:
def __init__(self,name):
self.name=name
def func(self):
print(