标签:foo object lse else def pytho 不能 tin nbsp
当用户输入字符串时,不能够用来运行程序
1.使用 hasattr 找出输入的字符串是否在程序内
2.使用 getattr 返回找出字符串对应的函数的内存地址或者变量
3. 使用setattr 添加新的函数,或者改变已有的程序的实例变量或类变量
import easygui def bulk(self): print(‘%s is talking‘%self.name) class Dog(object): def __init__(self,name): self.name = name def eat(self, food): print(‘%s is eating %s‘%(self.name, food)) find_info = easygui.enterbox(‘please give me you want‘) d = Dog(‘ronghua‘) if hasattr(d, find_info): #判断这个变量是否在函数内 func = getattr(d, find_info) #找到这个变量 # print(getattr(d, find_info)) func(‘包子‘) #运行 else: setattr(d, find_info, bulk) # 如果bulk 函数不在类内,载入bulk函数,用find_info 命名 func = getattr(d, find_info) func(d)
反射(hasattr , getattr, setattr) 输入的字符串用来运行程序
标签:foo object lse else def pytho 不能 tin nbsp
原文地址:https://www.cnblogs.com/my-love-is-python/p/9102706.html