7.29内容整理和概述
今日内容概要
内容目录
面向对象魔法方法
魔法方法原型:类中定义的双下方法
特点:到达某个条件,自动触发
"__init__(self,*)":实例化对象的时候自动触发
"__str__(self)":
1.对象被执行打印操作的时候会自动触发
2.必须返回一个"字符串"
3.将返回的字符串打印
"__call__(self, *args, **kwargs)":对象加括号调用,自动触发该方法
"__getattr__(self, item)":
1.当对象获取一个不存在的属性名,自动触发
2.该方法返回什么,item就会得到什么
3.item:不存在的属性名
"__getattribute__(self, item)":
1.对象获取属性的时候自动触发,无论这个属性存不存在
# 当类中既有__getattr__又有__getattribute__的时候,只会走后者
"__setattr__(self, key, value)":对象操作属性值的时候,自动触发
"__del__(self)":对象在被删除(主动,被动[局部空间清楚数据])的时候自动触发
"__enter__(self)":
1.对象被with语法执行的时候,自动触发
2.方法返回给as关键字后面的变量名
"__exit__(self, exc_type, exc_val, exc_tb)":对象被with语法执行并运行完with子代码之后,自动触发
元类
定义:将产生类的类称之为元类
产生类的方式:
1.class关键字:
结构:
class 类名:
类体代码
2.type:
结构:type(类名,类的父类,类的名称空间)
指定继承元类:
metaclass属性:metaclass=类名
双下new方法
"__new__":方法专门用于产生空对象