如何解决查找数据类属性的类型提示名称
我有一个带有类型化属性的数据类,使用我定义的类型,如下所示:
from dataclasses import dataclass
PositiveFloatType = NewType("PositiveFloat",float)
@dataclass(init=False,frozen=True)
class Foo:
bar: PositiveFloatType = 1
在运行时,我想了解Foo.bar的类型。也就是说,如果要使用Foo.bar,我想找到Foo类的所有属性,并知道它们的类型名称-获取“ PositiveFloatType”。
我尝试使用inspect无济于事。有什么办法吗?
解决方法
这就是dataclasses
模块提供的fields
函数的作用:
from dataclasses import fields
for f in fields(Foo):
print(f.name,f.type.__name__)
,
考虑到f.type
可以是字符串这一事实,我可以假设您实际上需要具体的类对象。
from typing import Any,Type,get_type_hints
def get_field_type(data_class: Type[Any],field_name: str) -> Type[Any]:
return get_type_hints(data_class)[field_name]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。