Python3定制类

Python3 定制类:
说到定制类, 肯定要先讲类是怎么在内存中建立的?
提到这个, 就不能不先讲python的万物之源, type(), 其即可判断数据的类型, 在Python
中还有一些特殊的功能. 即创建类(type(classname, classParentname, attrs)), 其中由于
python支持多继承, classParentname就默认为元组了, 由于attrs是接收属性的, 一个类的
实例属性通常比较多, 可能是为了一目了然把, 其用了字典类型作为数据类型.
集齐classname, classParentname, attrs就可以创建一个正常使用的类了.
然而Python这条蛇注定不会做无用之工, 既然有了定义类的方法, 为何要多此一举呢?
其实啊! 都是(猜测)为了定制类这个功能费尽心机, 毕竟蛇想吞象就必须要有特色.
故而, python就出现了metaclass这个定制类的类, 这个类你可以随意修改, 然后用type
来接收修改后的参数, 这样就定制了类.
等等! 你要怎么调用metaclass里面的规则? 难道要建一个目标类的时候, 附带着要先
实例化一部分无用的类? NONONO, 这个方案行不通, 费资源. 这样会大大减少, 蛇的行走
距离, 那么怎么办? __new__这个函数应运而生(猜测), 我new在你实例化之前执行可以吧? 好了, 现在把metaclass的规则放入__new__函数中, 你要实例化, 要调用, 那么我new先执行, 额! (__new__)我这边创建好目标类了, 通知你们一声, 现在类已经创建完毕.

猜你喜欢

转载自blog.csdn.net/weixin_43690548/article/details/88877344
今日推荐