美文网首页
Python中__metaclass__理解

Python中__metaclass__理解

作者: 萌萌哒的破晓 | 来源:发表于2019-07-11 17:00 被阅读0次

    前言:在Python中类也是对象,正所谓万物皆对象,我们都知道,type()函数可以指示实例的类属性,但是type还有另外一个功能,那就是作为元类动态地去创建类,元类相当于是类的模板,也就是类的类,__metaclass__的作用正是去指示某个新的类所套用的类模板(元类)是什么,对于类的创建,python有一套独特的体系:

    1.查找该类中有无metaclass,如果有就以metaclass 指示的元类去创建该类

    2.如果该类中没有metaclass语句,那么就从该类的父类中去重复1过程

    3.如果一直遍历到object类都没有找到metaclass就用系统的内建函数type()创建类

    metaclass的主要目的是在class被创建的时候对生成的class进行自动的动态修改。

    所以其实metaclass是很复杂的

    引用python大师的一句话来说就是:Metaclasses are deeper magic that 99% of users should never worry about. If you wonder whether you need them, you don't (the people who actually need them know with certainty that they need them, and don't need an explanation about why).

    相关文章

      网友评论

          本文标题:Python中__metaclass__理解

          本文链接:https://www.haomeiwen.com/subject/yrmdkctx.html