魔法方法+元类

7.29内容整理和概述

今日内容概要

内容目录

  • 面向对象魔法方法
  • 元类
  • 双下new方法

面向对象魔法方法

魔法方法原型:类中定义的双下方法
特点:到达某个条件,自动触发

"__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__":方法专门用于产生空对象	
posted @ 2022-07-31 23:22  维生素Z  阅读(11)  评论(0)    收藏  举报