探索小游戏引流的有效策略与未来发展趋势
1091
2022-09-10
PythonI/O进阶学习笔记_7.python动态属性,__new__和__init__和元类编程(下)
content:
上:
1.property动态属性
2.__getattr__和__setattr__的区别和在属性查找中的作用
3.属性描述符 和属性查找过程
4.__new__和__init__的区别
下:
5.什么是元类和自定义元类
6.用元类实现orm
=====================
五.什么是元类和自定义元类
1.什么是元类
在理解元类的时候,需要具备对python中类和实例的创建的概念有所了解,需要复习该系列的3中的类和对象那一章。了解类的创建、实例的创建、type和父类的继承顺序等。
在类的相关章节中也提到了,元类就是类的类。也就是元类就是负责创建类的一种东西。可以理解为,元类就是负责生成类的。而 type 就是内建的元类。也就是 Python 自带的元类。
2.如何自定义使用元类
a.模拟python中动态创建类
既然我们知道python中一切皆对象,类也是,所以类也是可以被创建的,那么我们自己是新一个传入类名,并且动态生成类的方法:
传入类名,在create_class中返回同名字的类名。
b.用type来更加灵活的创建类
但是实际上在a中创建类还是比较蠢的。要在方法中去一个个判断名字。
- 用type来动态创建类:
直接输入类名,就可以返回一个类。后面的参数要求:必须传递第一个参数,为类。并且传递进去的函数不加括号,为直接的函数对象。
这样的类就像是class User: pass 没有自定义的属性和方法。
- 创建传递类的属性和方法:
创建类的属性:
传递类的方法:先创建一个函数,函数必须传递一个参数,为类。并且传递进去的函数不加括号,为直接的函数对象。
共4页: 上一页1234下一页
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~