1>元类的概念
1.1> 知识储备只回顾exec方法,看一下它的三个参数
参数1:object是一个字符串的语句或者一个编译过的语句的对象名称;
参数2:全局作用域(字典形式),globals 是个 dict 对象,用来指定代码执行时可以使用的全局变量以及收集代码
执行后的全局变量,如果不指定默认就使用globals();
参数3:局部作用域(字典形式),locals 可以是任何 mapping 对象,用来指定代码执行时的局部变量以及收集代码
执行后的局部变量,如果不指定默认就使用locals()。
例子
1.2> 说一说何为“python的一切皆对象”,对象可以怎么用
1、都可以被引用,x=obj
2、都可以当作函数的参数传入
3、都可以当作函数的返回值
4、都可以当作容器类的元素,l=[func,time,obj,1]
那么,站在类的角度(比如就手动用 class定义一个类),类也满足上面的4点,是否类 也是一个对象?例子如下:
此时的 type就是 元类。所有以 class定义的类都是以type为模板创建出来的,他们都是type实例化的对象
所以,元类其实就是类的类,类的模板,class的元类就是type。
type是python的一个内建元类,用来直接控制生成类
2>创建类的两种方式
<