查看生成的数据类代码,包括重新组合字节码、格式化静态模板和大量的魔术。

DataclassInspector的Python项目详细描述


查看生成的数据类代码,包括重新组合字节码、格式化静态模板和大量的魔术。

检查员

Inspector是用于检查数据类的类。你可以用数据类初始化它。

>>>fromDataclassInspector.inspectorimportInspector>>>@dataclass...classItem:...name:str...value:int=34...>>>inspected=Inspector(Item)

然后打开一个文件并将inspected.code写入其中(示例输出如下)。

fromdataclassesimportField,_MISSING_TYPE,_DataclassParamsclassItem:__dataclass_fields__={"name":"Field(name='name', type=str, default=_MISSING_TYPE, default_factory=_MISSING_TYPE, init=True, repr=True, hash=None, compare=True, metadata={}, _field_type=_FIELD)","value":"Field(name='value', type=int, default=34, default_factory=_MISSING_TYPE, init=True, repr=True, hash=None, compare=True, metadata={}, _field_type=_FIELD)",}__dataclass_params__=_DataclassParams(init=True,repr=True,eq=True,order=False,unsafe_hash=False,frozen=False,)name:strvalue:int=34def__eq__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)==(other.name,other.value)else:returnNotImplemented__hash__=Nonedef__init__(self,name:str,value:int=34)->None:self.name=nameself.value=valuedef__repr__(self):return(self.__class__.__qualname__+f"""(name={(self.name)!r}, value={(self.value)!r})""")

它还提供自动生成其他自定义函数;

>>>@dataclass(order=True)...classNewItem(Item):...name:int...value:str...defconvert(self):...self.name=str(name)...>>>inspected=Inspector(NewItem)

输出为;

fromdataclassesimportField,_MISSING_TYPE,_DataclassParamsclassNewItem(Item):__dataclass_fields__={"name":"Field(name='name', type=int, default=_MISSING_TYPE, default_factory=_MISSING_TYPE, init=True, repr=True, hash=None, compare=True, metadata={}, _field_type=_FIELD)","value":"Field(name='value', type=str, default=34, default_factory=_MISSING_TYPE, init=True, repr=True, hash=None, compare=True, metadata={}, _field_type=_FIELD)",}__dataclass_params__=_DataclassParams(init=True,repr=True,eq=True,order=True,unsafe_hash=False,frozen=False,)name:intvalue:strdef__eq__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)==(other.name,other.value)else:returnNotImplementeddef__ge__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)>=(other.name,other.value)else:returnNotImplementeddef__gt__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)>(other.name,other.value)else:returnNotImplemented__hash__=Nonedef__init__(self,name:int,value:str=34)->None:self.name=nameself.value=valuedef__le__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)<=(other.name,other.value)else:returnNotImplementeddef__lt__(self,other):ifother.__class__isself.__class__:return(self.name,self.value)<(other.name,other.value)else:returnNotImplementeddef__repr__(self):return(self.__class__.__qualname__+f"""(name={(self.name)!r}, value={(self.value)!r})""")defconvert(self):self.name=str(name)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我试图使用Ajax获取数据库内容并显示,但我看到了这个错误   Java堆栈ORM与数据库可伸缩性   具有两个观察者列表的java观察者模式   java需要Selenium框架公共函数来实现下一个元素的可见性   corba如何在Java中使ContextList序列长度为3到序列长度为0   java为什么Struts检测到未处理的异常?   java myLooper()在异步任务期间不会退出   验证我需要编写一个包含特殊字符和0到9的数字的java字符串来验证密码   Android WebView中的java地理位置权限   java X509证书路径验证   IntelliJ IDEA,在format/save(JAVA)上关闭在实例变量之前插入'final'关键字   安卓中java在20秒后终止无限循环   java Spotbugs构建问题   java如何在OSGi中实现ManagedServiceFactory?   java加载从php脚本创建的png文件   java将字符数组复制到字符数组中   java如何序列化使用Jackson扩展TreeSet的类?   java有什么方法可以计算HashSet中落在同一个Bucket中的元素数吗   java无法初始化类org。阿帕奇。轴客户即使axis jar在那里,AxisClient也会被抛出