python - 反射

通过字符串映射或修改程序运行时的状态,属性,方法。有四个方法:

getattr(object, name, default = None)    # 
hasattr(object, name)   #   object中是否有对应的name字符串的方法。
setattr(x, y, v)
delattr(x, y)

1)hasattr: 判断一个对象中是否有对应的字符串的方法映射。
2)getattr:

例子:

class Dog(object):
    def __init__(self, name):
        self.name = name
    def eat(self):
        print("%s is eating..." %self.name)


d = Dog('liuhuayang')
choice = input(">>:").strip()



if hasattr(d, choice):
    getattr(d, choice)

3)set(x, y, v)

通过字符串的形式,装配方法到类中。

你可能感兴趣的:(python - 反射)