楼主: 时光人
1378 5

[网帖精选] Python: 类定义进阶/炫技—使用type函数动态创建类 [推广有奖]

  • 3关注
  • 34粉丝

已卖:165份资源

院士

23%

还不是VIP/贵宾

-

威望
1
论坛币
26913 个
通用积分
429.8724
学术水平
95 点
热心指数
109 点
信用等级
91 点
经验
39970 点
帖子
1630
精华
3
在线时间
580 小时
注册时间
2019-2-25
最后登录
2025-5-6

楼主
时光人 学生认证  发表于 2019-10-10 09:15:23 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

AIU人工智能学院:数据科学、人工智能从业者的在线大学。
数据科学(Python/R/Julia)数据分析、机器学习、深度学习

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

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

python类定义进阶

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

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

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

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类的实例,并将其赋值给所创建的类名!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:python type object value Julia

沙发
CDA网校 学生认证  发表于 2019-10-10 11:26:10
感谢分享

藤椅
gudure 学生认证  发表于 2019-10-10 11:32:14

板凳
时光人 学生认证  发表于 2019-10-10 11:38:33

报纸
jinlu310 在职认证  发表于 2019-10-10 13:08:37
感谢分享!

地板
东方祥 企业认证  发表于 2019-10-10 13:10:13
Python技能学起来

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-18 11:35