# 反射:通过字符串映射或修改程序运行时的状态,属性。或者方法 class Dog(object): def __init__(self,name): self.name = name def eat(self,food): print("%s is eating...%s" %(self.name,food)) d = Dog("abc") choice = input(">>:").strip() if hasattr(d,choice): func = getattr(d,choice) func('蛋糕') # hasattr(obj,name_str), 判断一个对象obj里面是否含有对应的name_str字符串的方法 #getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址 # >>:eat # abc is eating...蛋糕
2.
# hasattr(obj,name_str), 判断一个对象obj里面是否含有对应的name_str字符串的方法
#getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址
#setattr(obj,'y',z) 相当于x.y = v
#delattr(d,choice) 删除对象对应字符串的属性
3.
# 反射:通过字符串映射或修改程序运行时的状态,属性。或者方法 def bulk(self): print("%s is bulking..." % self.name) class Dog(object): def __init__(self,name): self.name = name def eat(self,food): print("%s is eating...%s" %(self.name,food)) d = Dog("abc") choice = input(">>:").strip() print(hasattr(d,choice)) if hasattr(d,choice): delattr(d,choice) # func = getattr(d,choice) # func('蛋糕') else: # setattr(d,choice,bulk) # d.talk(d) setattr(d,choice,22) print(getattr(d,choice)) print(d,name) # hasattr(obj,name_str), 判断一个对象obj里面是否含有对应的name_str字符串的方法 #getattr(obj,name_str) 根据字符串去获取obj对象里对应的方法的内存地址 #setattr(obj,'y',z) 相当于x.y = v #delattr(d,choice) 删除对象对应字符串的属性