反射
# 反射
class Dog(object):
def __init__(self, name):
self.name = name
def eat(self):
print("Dog name is %s" % self.name)
d1 = Dog("andy")
# getattr(obj, str) # 调用obj里的方法str
getattr(d1, 'eat')()
# hasattr(obj, str) #判断一个对象obj里是否有等于str的方法或者属性
print(hasattr(d1, 'name'))
# setattr(obj, func_name, str) #obj.func_name = str 为实例obj设置了一个func_name的方法,其值等于外部方法str
def aaa(self):
print("aaaaa %s" % self.name)
setattr(d1, 'talk', aaa)
d1.talk(d1)
# delattr(obj, str) #删除一个对象obj里的str方法或者属性
delattr(d1, 'talk')
d1.talk(d1)