Python 之 类的反射
当一个类中,带有多个方法时,要求用户输入方法名,并调用相应函数,此时就可使用类的反射方法,来快速调用相应函数,而不再需要使用多个IF判断条件语句。
类的反射方法hasattr(obj,name_str) 判断一个对象OBJ里是否有对应的name_str字符串的方法getattr(obj,name_str) 根据字符串去获取obj对象里的对应方法的内存地址setattr(obj,'y',z) 相当于 obj.y = 'v'delattr(obj,name_str) 删除一个对象代码#Author Kangclass Dog(object): def __init__(self,name): self.Name = name def eat(self): print("%s is eatting...."%(self.Name)) def talk(self): print("%s is talking...."%self.Name) def sleep(self): print("%s is sleep...."%self.Name) def walk(self): print("%s is walking..."%self.Name) def alert(self): print("此方法不存在")d1 = Dog("二哈")choice = input("请输入你想要的:>>")if hasattr(Dog,choice): #判断Dog类是否有此方法 func = getattr(d1,choice) #调用该方法(返回值为函数地址) func() #运行该函数,并可传值else: print("你输入的方法有误!!!!")
结果:请输入你想要的:>>eat二哈 is eatting....请输入你想要的:>>eat二哈 is eatting....
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。