鱼C论坛

 找回密码
 立即注册
查看: 2019|回复: 0

[技术交流] Python type 的另一种用法

[复制链接]
发表于 2021-7-12 14:31:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
Python type 的另一种用法


前言

Python 的 type 有两种用法。

第一种(只传入一个参数) 返回参数的类型。

第二种(传入三个参数) 会返回一个新的类型对象。

这里详细介绍第二种用法。

用法

type 的三个参数分别为:name, bases, dict

name 参数

它指定了新类的名称。

bases 参数

它指定了新类的父类(基类),以元组形式传入。

若 bases 参数为空,则父类(基类)默认为 object。

dict 参数

它指定了新类的类属性,若留空则无属性。

示例

  1. # 1, 单纯的定义一个类

  2. # 类名为 A, 父类为 object, 属性..[doge]
  3. A = type('A', (object, ), {'isHandsome': True})

  4. # 2, 一个有父类的类
  5. A = type('A', (object, ), {'isHandsome': True})
  6. B = type('B', (A, ), {'isClever': False})
  7. C = type('C', (B, ), {})
  8. # 注意!上面的这行代码不能这样写:
  9. # C = type('C', (A, B, ), {})
  10. # 这样会报错,因为有一个类和父类的父类重复了(A 和 B 的父类重复)
  11. # 需要去掉A。
  12. print(C.isHandsome, C.isClever)

  13. # 3, 继承两个类
  14. A = type('A', (), {})
  15. D = type('D', (), {})
  16. E = type('E', (A, D), {})

  17. # 4, 一些没有什么用处的骚操作
  18. # 借助字符串,你可以创造出一些名字特别的类..
  19. A = type('BoCai\'s Class', (), {})
  20. print(A)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-6-7 13:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表