zoukankan      html  css  js  c++  java
  • python之反射实例 setattr delattr

    # __*__ 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)):#反射
        delattr(d,choice)
        # attr=(getattr(d,choice))
        # # print(attr)
        # # func("ChrnRonghua")
        # setattr(d,choice,"Ronghua")
    else:
        # setattr(d,choice,bulk)
        # d.talk(d)
        setattr(d,choice,None)
        print(getattr(d,choice))
    print(d.name)
    
    '''反射
            hasattr(obj,name_str) ,判断一个对象obj里是否有对应的name_str字符串的方法
            getattr(obj,name_str),根据字符串去获取obj对象里的对应的方法的内存地址
            setattr(obj,'y',z),is eauivalent ot "x.y = v"
            delattr  删除
            '''
  • 相关阅读:
    Steady Cow Assignment POJ
    二分图多重匹配问题
    Tour HDU
    奔小康赚大钱 HDU
    Strategic Game HDU
    Antenna Placement POJ
    Oil Skimming HDU
    Rain on your Parade HDU
    假如,
    这样也可以,insert,,
  • 原文地址:https://www.cnblogs.com/davidz/p/8883421.html
Copyright © 2011-2022 走看看