是否有使用 attrs 转换器的装饰器?
有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 )
Run Code Online (Sandbox Code Playgroud)
我想使用转换器做类似的事情。将某些输入字节修剪到上限的示例。
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1714 次 |
| 最近记录: |