eat,无法运行,因为choice输入的是字符串格式,无法用p.choice来调用
if hasattr(p, choice):
# hasattr(p,choice)可以判断Person类中有没有...= getattr(p, choice)
# getattr(p,choice)得到类中的方法,
# 一般为其定义一个变量,因为eat这个方法中可能会含有参数然后通过变量来调用...func("apple")
# 如果Person类中的eat方法含有参数, 即def eat(self,food),
# 此处func(food)中就可以了加一个参数food,来传值
else...:
setattr(p, choice, talk)
func = getattr(p, choice)
func(p)
# 如果输入一个talk,而Person中有没有...talk()方法,就可以通过setattr来添加方法,
# 要先在Person类外写一个talk的方法
# setattr(p, choice, 22) # "22"可以写成别的