反射

# 反射:
# hasattr() 判断一个对象里是否有对应的 name_str 字符串的方法
# getattr() 根据字符串获得对象里的对应的方法的内存地址  后面+()可调用
# setattr(obj, 'name', value) 通过字符串设置一个值
# delattr(obj, "str")
def eat(self):
    print("eat")

class Dog(object):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def talk(self, who):
        print("%s is talking wangwangwnag with %s!"% (self.name, who))

d = Dog("L", 11)
action = input("action:>>").strip()

if hasattr(d, action):
    func = getattr(d, action)
    func("Jy")
    print(d.name)
    delattr(d, 'name')
else:
    setattr(d, action, eat)
    func = getattr(d, action)
    func(d)
print(d.name)

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值