如何在Python中使用type函数动态创建类型注解?
用type函数动态创建带类型注解的类
Python里类的类型注解会被存放在类的__annotations__字典属性中,所以用type动态创建类时,只需要在第三个参数(类属性字典)里添加这个字段就能实现类型注解的定义。
基础示例对比
静态定义带类型注解的类:
class A: a: str
用type动态实现的等价写法:
A = type('A', (), {'__annotations__': {'a': str}})
同时包含普通属性和类型注解
如果需要同时定义普通赋值的属性和仅带类型注解的字段,比如:
class C: b = 123 c: float
对应的动态创建代码:
C = type('C', (), {'b': 123, '__annotations__': {'c': float}})
验证正确性
你可以通过打印类的__annotations__属性来确认类型注解已被正确添加:
print(A.__annotations__) # 输出: {'a': <class 'str'>} print(C.__annotations__) # 输出: {'c': <class 'float'>}
这种方式完全可以满足你提到的场景——工具可以正常读取类的__annotations__来生成测试代码或API调用。
内容的提问来源于stack exchange,提问作者Clément Dato
相关产品推荐
相关产品推荐

