Python每天一分钟:类定义进阶/炫技—使用type函数动态创建类

Python中的type函数是常用于查看变量类型,在调试python代码和bug修复过程中都是非常有效的工具。

然而,type函数的强大功能并非只能用于查看变量类型,在Python中完全允许使用 type函数来动态创建类,或者说定义类,这也是python类编程中的进阶用法!

python类定义进阶

下面我们将详细介绍使用type函数动态创建类的过程!

type函数新解—能理解最好,不理解直接看下一节

先来看一段代码,并仔细观察type函数的输出类型:

82 年 18 月 71号考试075分 去掉文字加我的裙

type函数新解

分析:

从上述代码的输出可见testClass类的类型竟然是type,这似乎与我们的认识不一致,该怎么理解呢?

实际上从Python解释器的角度就能说得通:python在使用关键字class 定义 testClass类时,可理解为创建了一个特殊的对象(type类的对象)且将该对象赋给了testClass变量。

总的来说就是:在python代码中,使用class 创建的所有类都是type类的实例!

下面我们将为大家演示如何使用type函数动态创建/定义类!

使用type函数动态创建/定义类

解释下"动态创建"的意思:在代码的任何位置都可以创建!话不多说,直接看代码演示:

type函数动态创建类

上图程序的第5行代码使用type 函数创建了 Dog 类,并指定了该类的三个参数:

第一个参数:类名。第二个参数:父类集合。用元组表示,指定所创建类继承的多个父类。尽管只有一个父类,也必须使用元组语法(父类+一个逗号)第三个参数:字典。字典内容为所创建类绑定的类变量和方法,字典的 key 为类变量或方法名,字典的 value 为普通值时表示类变量;字典的 value 为函数名时则表示方法。根据上述原则,就很容易看懂代码的内容了:

Dog类类名为'Dog'父类只有一个:object类类中定义了一个run方法和一个name类变量,其中run方法由runImpl函数实现一个问题

大家可以尝试使用type函数来练习如下问题:

一个练习

总结

实际上,Python解释器在解释通过class创建的类时,都是通过type 函数来定义。所以,无论是使用普通的类创建方式还是type函数的类创建方式,python最终都是创建一个type类的实例,并将其赋值给所创建的类名!

希望本文有助于读者的学习,工作!最后感谢您的阅读!

发布了29 篇原创文章 · 获赞 2 · 访问量 1148

猜你喜欢

转载自blog.csdn.net/qun821871075/article/details/102491628