面向对象__getattr__//__setattr__

Posted lxx7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象__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")

 

以上是关于面向对象__getattr__//__setattr__的主要内容,如果未能解决你的问题,请参考以下文章

面向对象__getattr__//__setattr__

面向对象之__setattr__,__delattr__,__getattr__

面向对象十三类的魔术方法

33.Python面向对象类的专有方法__iter____getitem____getattr____call____new____init__

33.Python面向对象类的专有方法__iter____getitem____getattr____call____new____init__

33.Python面向对象类的专有方法__iter____getitem____getattr____call____new____init__