PythonI/O进阶学习笔记_7.python动态属性,__new__和__init__和元类编程(下)

网友投稿 1091 2022-09-10

PythonI/O进阶学习笔记_7.python动态属性,__new__和__init__和元类编程(下)

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小时内删除侵权内容。

上一篇:Windows 7下配置JDK环境变量
下一篇:Win7安装错误提示与解决办法大全
相关文章

 发表评论

暂时没有评论,来抢沙发吧~