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 Kang
class 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....
文章名称:Python之类的反射
文章转载:http://pwwzsj.com/article/jhsgdj.html