Что вам нужно, так это фабрика методов класса:
@attr.s
class CRC8:
checksum = attr.ib()
@classmethod
def from_bytes(cls, bytes):
# compute your CRC
# checksum = ...
return cls(checksum)
, которая позволяет вам выполнять правильные проверки и балансировки.
В этом случае мне будет интересно, не будет ли функцияделать?Аналогично стандартной библиотеке binascii.crc32()
.