爱陪小樱桃

导航

 

标签(空格分隔): 元类介绍


元类介绍:

在正式介绍元类之前,大家储备一下知识: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'>

image.png-34.3kB
image.png-50.4kB

如下:是通过元类定义的一个chinese类:
image.png-57.7kB

  • 一句话:元类就是原始的类,就是类的类
posted on 2018-10-11 22:46  cherry小樱桃  阅读(173)  评论(0编辑  收藏  举报