标签(空格分隔): 元类介绍
元类介绍:
在正式介绍元类之前,大家储备一下知识:exec;
- exec命令使用
这个命令有三个参数:
1.字符串形式的命令,(把字符串提取出来)
2.全局作用域;(字典形式,如果不指定,默认使用globals())
3.局部作用域,(字典形式,如果不指定默认locals)
g={'x':1,
'y':2}
l={}
exec("""
global x,m
x=10
m=100
z=3
""",g,l)
print(g)
#print(l)
- exec就是一个函数的执行;这里大家记住,后边我们会用到;
python中一切皆是对象,对象可以怎么用?
1.都可以被引用;x=obj
2.第二点,都可以当做函数的参数传入;
3.都可以当做函数的返回值
4.都可以当做容器类型的元素;(就是盛多个值,例如字典,列表)
class Foo:#类也是对象
pass
obj= Foo()
print(type(obj))
print(type(Foo))
执行结果:
<class main,Foo>
<class 'type'>
- 元类的概念:
向上述的例子可以发现:Foo也是一个对象,在python中一切都是对象,从这里可以看出:类的类,就是被称为元类:<class 'type'>
如下:是通过元类定义的一个chinese类:
- 一句话:元类就是原始的类,就是类的类