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类的实例,并将其赋值给所创建的类名!
希望本文有助于读者的学习,工作!最后感谢您的阅读!