是否有使用 attrs 转换器的装饰器?
有 and 的装饰器validator
,default
但我看不到converter
.
可能吗?
我更喜欢将函数作为类内的“方法”,而不是类外的全局函数。装饰器允许:)
验证器的示例代码段。
payload : bytes = attr.ib( default=b'', on_setattr=attr.setters.validate )
#! NOTE: using attrs validator as a property setter function.
@payload.validator
def payload_setter( self, attribute : attr.Attribute, value : bytes ) -> None :
self.payload_length = len( value )
我想使用转换器做类似的事情。将一些输入字节修剪为上限的示例。
data : bytes = attr.ib( default=b'', on_setattr=attr.setters.converter )
#! NOTE: using attrs converter as a property setter function.
@data.converter
def data_setter( self, attribute : attr.Attribute, value : bytes ) -> None :
trimmed_value = value[:10]
return trimmed_value