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对象里的对应的方法的内存地址
'''

浙公网安备 33010602011771号