每日一课 | 浅谈python魔术方法和属性

在Python中的面向对象中有很多魔术方法如:

每日一课 | 浅谈python魔术方法和属性

   注意: __setitem__: 每当属性被赋值的时候都会调用该方法,因此不能再该方法内赋值self.name = value 会死循环

  • __str__函数用于处理打印实例本身的时候的输出内容。如果没有覆写该函数,则默认输出一个对象名称和内存地址。

每日一课 | 浅谈python魔术方法和属性

  • 析构魔术方法,当对象从内存被释放前调用的方法,目的是做一些释放销毁工作。

每日一课 | 浅谈python魔术方法和属性

__add__: 加运算

每日一课 | 浅谈python魔术方法和属性

属性和方法

property() 函数的作用是在新式类中返回属性值

每日一课 | 浅谈python魔术方法和属性

  • 对应上面的实例,

每日一课 | 浅谈python魔术方法和属性

静态方法和类成员方法(区别是有无带参数)
  • 使用staticmethod()和classmethod()函数或使用@staticmethod和@classmethod装饰器

每日一课 | 浅谈python魔术方法和属性

  • 使用hasattr()函数判读对象中是否存在指定的非私有属性和方法:

每日一课 | 浅谈python魔术方法和属性

 迭代器:

  • 指定数据创建迭代器(使用iter()和next() )

每日一课 | 浅谈python魔术方法和属性

  • 迭代对象:定义魔术方法:__next__()__iter__()

每日一课 | 浅谈python魔术方法和属性

今日福利

资料包0元领

????????????

每日一课 | 浅谈python魔术方法和属性