面向对象__getattr__//__setattr__

# class Htext(object):
#     def __init__(self,slash,time=None):
#         self.time=time
#         self.ha="ha"
#         self.slash=slash

    # def __setattr__(self, key, value):
    #     self.__dict__[key] = value
    #     print("kokok")   #会执行此次,init方法有三个变量,下面(s.age=90)我又赋值了一个变量,用setattr(setattr(s,"hua","mei"))赋值一次,故执行5次,
    #
    # def __getattr__(self, item):
    #     print("此属性不存在")   #getattr/hasattr找不到属性时,都会走
    #     return ""
    #
    # def __getitem__(self, item):
    #     return self.__dict__[item]   #  print(s['age'])  # 调用 __getitem__方法 输出
    #
    # def __setitem__(self, key, value):   #s['name'] = 'tom'  # 调用 __setitem__ 方法
    #     self.__dict__[key] = value



# s=Htext("IO",2)

# s.age=90
# setattr(s,"hua","mei")

猜你喜欢

转载自www.cnblogs.com/lxx7/p/10249795.html