python之反射实例

# __*__ coding: utf-8 __*__
__author__ = "David.z"

def bulk(self):
    print("%s is yelling..."%self.name)

class Dog(object):

    def __init__(self,name):
        self.name = name

    def eat(self,food):
        print(" %s is eating..."%self.name,food)

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

if (hasattr(d,choice)):#反射

    func=(getattr(d,choice))
    func("ChrnRonghua")
else:
    setattr(d,choice,bulk)

    d.talk(d)

'''反射
        hasattr(obj,name_str) ,判断一个对象obj里是否有对应的name_str字符串的方法
        getattr(obj,name_str),根据字符串去获取obj对象里的对应的方法的内存地址
        
        '''

  

原文地址:https://www.cnblogs.com/davidz/p/8883263.html