鱼C论坛

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

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

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

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

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

x
Python type 的另一种用法


前言

Python 的 type 有两种用法。

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

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

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

用法

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

name 参数

它指定了新类的名称。

bases 参数

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

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

dict 参数

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

示例
# 1, 单纯的定义一个类

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

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

# 3, 继承两个类
A = type('A', (), {})
D = type('D', (), {})
E = type('E', (A, D), {})

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-14 18:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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