面向对象之元类介绍

Posted surewing

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面向对象之元类介绍相关的知识,希望对你有一定的参考价值。

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


元类介绍:

在正式介绍元类之前,大家储备一下知识: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类:
技术分享图片

  • 一句话:元类就是原始的类,就是类的类

以上是关于面向对象之元类介绍的主要内容,如果未能解决你的问题,请参考以下文章

面向对象之元类介绍

面向对象之元类

Python之元类详解

Python之元类ORM

Python之元类详细解析

Python进阶开发之元类编程